java入門->spring基礎

Spring:開源的輕量級的應用開發框架

    特點:簡化開發(對API進行簡化); 

              解耦(spring幫我們去管理對象,包括對象之間的依賴關係);

              集成:可以集成其它的框架;

    Spring:本質是管理軟件中的對象,即創建對象和維護對象之間的關係;

    Spring容器:

        1)Spring框架用來管理對象的一個核心模塊;

        2)如何啓動Spring容器:將Spring相關的jar文件拷貝到WEB-INF/lib下;

                                                 配置Spring的配置文件(applicationContext.xml) 

                                                 啓動容器;

        3)利用容器創建對象:1)調用不代參的構造器;2)靜態工廠;3)實例工廠;

        4)作用域:

              4.1)默認情況下,容器對於一個bean配置,只會創建一個實例;

              4.2)可以設置scope屬性=“protptype”,每getbean一次,都會創建一個實例;

    生命週期

        1)init-method屬性:指定初始化方法,容器在創建好相應的對象之後,會立即調用初始化方法;

        2)destroy-method屬性:指定銷燬方法,容器關閉之前會調用銷燬方法;

              應用使用AbstractApplicationContext接口,銷燬方法只針對作用域爲單列的bean;

    延遲實例化: 

        默認情況下,容器在啓動之後,會檢查整個的配置文件,將配置爲單個的bean,先創建好;如果設置Lazy-init屬性

        爲true,則容器不再按照默認情況進行處理(只有當getBean纔會創建);

    IOC(控制反轉):

        對象的依賴關係交給容器來管理;

    DI(依賴注入):

        容器通過調用對象的構造器或者set方法來建立對象之間的依賴關係;

    set方式的注入:

        有無參的構造器;有相應的get/set方法;

    構造器注入

        有帶參的構造器,添加相應的配置 < contructor-org index="" ref=""/>

    自動裝配:

        autowire:表示讓容器自動裝配(自動注入依賴關係);

        byName:查找和屬性名稱一致的bean,然後調用set方法來完成注入,如果找不到對應的bean,注入null;

        byType:容器查找與屬性類型一致的bean,然後調用set方法來完成注入,如果找不到對應的bean,注入null,

                        如果找到多個則報錯;

    注入基本類型的值 :可以使用value屬性或者value元素;

    注入集合

        list集合,set集合,map元素和entry元素;props和prop元素;

    將集合作爲第一個bean元素

        util:list元素;  util:set元素 ;    util:map元素;  util:properties元素;  util:properties可以讀取proper文件內容;

    Spring表達式

        類似於EL表達式,用於讀取bean對象的屬性值;

    基於註解的組件掃描

        spring容器會檢查指定包及其子包下面的所有類,如果該類包含了一些特定的註解,則spring容器會將其作爲一個bean

        來進行管理,換句話講,就是相當於在配置文件中增加一個元素,使用組件掃描,可以簡化spring的配置文件;

        如何進行組件掃描:

            1)在spring配置文件中,添加<context:component-scan base-package=""/> 開啓註解掃描,其中,

                  base-package指定要掃描的包;

            2)在類名前添加相應的註解

                  @component   @Repository ->持久化層    @Service ->業務層   @Controller  ->控制層

    作用域:@Scope來指定,值可以是prototype和singleton

    生命週期相關方法:@PostConstruct    @PreDestroy

    延遲加載:@Lazy(true)

    @ResponseBoby作用:將Controller方法返回的對象,通過適當的HTTPMessageConvertor轉換爲指定格式

                                           後,寫入到Response對象的boby數據區;

                                           使用時,返回的數據不是HTML標籤的頁面,而是其它格式的數據eg:Json,xml;

    使用註解注入依賴關係

        1)@Autowired和@Qualifier :該註解支持構造器注入和set注入;

        2)@Resource :支持set方法注入,也可加到屬性前;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章