Spring學習筆記-1:Spring裝配

一直再用Spring,但是僅限於使用,也沒有系統學習過,最近抽空開始系統學些一下,以spring in action作爲參考,以下內容大部分摘自spring in action,僅限於自己學習。

1.裝配

創建對象之間的協作關係稱爲裝配,這是依賴注入的本質
Spring容器負責創建bean,並通過DI來協調對象之間的關係。
Spring有三種裝配機制:

1)XML中進行顯式配置 
2)在Java中進行配置 
3)隱式的bean發現機制和自動裝配

2.Spring自動裝配bean

1)自動掃描:自動發現應用上下文中創建的bean
2)自動創配:Spring自動滿足bean之間的依賴

自動化裝配bean:

@Component("name"):表明該類會作爲組件類,name表示組件bean的名字,@Component可以用Java依賴注入規範中的@Name("name")替換
@ComponentScan(basePackageClasses={xxxx1.class}):Spring中啓用組件掃描(默認掃描與配置相同的包),對應於XML中<context:component-scan>元素,其中basePackageClasses可用basePackages="com.xx.aaa"(包名)替代

由於過程中用到了Junit模擬Spring環境,加載Spring容器,順帶兩個註解:

@RunWith(SpringJunit4ClassRunner.class):便於在測試開始的時候自動創建Spring的應用上下文(模擬Spring環境)
@ContextConfiguration(classes=xxxx.class):表明需要在xxx中加載配置(配置文件(Java或者XML文件))

實現自動裝配:
@AutoWired:可以用在任何方法上(以下是三種方式)

        @AutoWired
        private CDPlayer cd;
        @AutoWired
        public CDPlayer(CompactDisc cd){
            this.cd = cd;
        }
        //注入Name對象
        @AutoWired
        public void setName(Name name){
            this.name = name;
        }

@Inject可以替代@Autowired

3.Java代碼裝配Bean
當我們裝配的組件來自第三方時,無法用註解裝配,此時需要顯式配置,推薦使用JavaConfig(不是XML),因爲其更強大、安全、對重構友好
@Configuration:表明這個類是一個配置類
@Bean(name=”xxx”):對應的方法會返回一個bean對象,默認與帶有該註解的方法名一致
在JavaConfig中裝配bean的方式:引用創建bean的方法

        @Bean
        public CDPlayer cdPlayer(){
            return new CDPlayer(compactDisc());
        }
        //使CompactDisc作爲方法參數(推薦,不必須在同一個配置類中)
        @Bean
        public CDPlayer cdPlayer(CompactDisc cd){
            return new CDPlayer(cd);
        }

JavaConfig可以使用任何必要的Java功能產生bean實例。

以上僅是個人總結自Spring in Action。

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