Spting--DI/IOC

DI/IOC  <bean>  表明由容器構建的對象(經過反射構建,且類必須有無參的構造方法)web

            公共屬性  id=「惟一的id」  在容器中是惟一的session

                  name=「相似id屬性」  能夠同時指定多個使用逗號、分號、或空格分隔spa

                  若是不指id和name定就能夠使用全類名獲取prototype

                  class=「類的全路徑」component

            注入方式  屬性注入  <property name="屬性名"></property>   value=「字面值」對象

                                               ref=「容器內對象的ID」繼承

                        在<property>或<constructor-arg>內部能夠設置內部bean。內部bean不須要設置id,只給當前屬性或參數使用,外部不能使用  索引

                  構造器注入<constructor-arg>  inde「參數索引」作用域

                                  name=「參數名」get

                                  type=「參數數據類型」

                  工廠方法注入(不經常使用)

      集合  <util:集合類型>  添加util文件才能支持  (集合類型爲list,set,map)

                  list和set有 id,value,ref 值

                  map有 id 和 entry(key,value,key-ref,value-ref)

    簡化  p標籤  p:屬性名=「字面值」

              p:屬性名-ref=「引用對象的id」

        自動裝配  特色:兩種方法不能同時使用,還會下降代碼可讀性

              autowire=「byType」  容器內對應數據類型的對象只能有一個

              autowire=「byName」  對象名和屬性名要一致

    繼承  特色:子bean能夠繼承和覆蓋父bean的屬性,父bean中自動裝配的屬性不能被繼承

        parent=「父bean的id」

        abstract=「true」  只能在容器內被繼承,不能被外部使用

    做用域  scope=「singleton」  默認的,在容器內建立一個實例,並共享。在建立容器時就進行對象的實例化

         scope=「prototype」  每次調用getBean()方法都會產生新的實例

         scope=「session」  在web項目對每一個會話產生新的實例

         scope=「request」  在web項目對每一個請求產生新的實例

    外部屬性文件  定義:命名爲*.porperties  通常放在src目錄下,保存的是key=value的鍵值對,多個鍵值對用回車換行

            加載:導入context的標籤訂義 <context:property-placeholder location="classpath:外部屬性文件名"/>

            使用:屬性名=「${key}」

    註解  對classpath下的類進行掃描和檢測,對具備特定註解的類進行實例,並進行裝配

        啓動掃描  <context:component-scan base-package="包名1,包名2"></context:component-scan>  掃描包及子包下的類

              resource-pattern=「過濾的類名」

        分類  @Component  基本組件

            @Reqository  持久化組件

            @Service  業務邏輯組件

            @Controller  控制其組建

        用法  把註解定義在類名前,能夠用 (value-「組件名」) 指定組件名。若是不指定組件名,默認爲首字母小寫的類名

        自動裝配  把註解放在屬性前可實現自動裝配

              @Auotwired  requried=false  不是必需的

              @Qualifier(「指定組建的id」)

本站公眾號
   歡迎關注本站公眾號,獲取更多信息