Spring裝配bean的三種方法:自動化裝配,java代碼裝配,XML裝配及它們的混合使用

                                                                                           一、自動化裝配

       首先,把可能被裝配的類聲明爲組件類,告知spring要爲這個類創建bean如:

                   

import org.springframework.stereotype.Component;

@ Component
public class CD{
     private String title="稻香";
     private String artist=“周杰倫”;
     public void play(){
           System.out.println("...童年的紙飛機飛回我手裏...");
  }

}
     其次,在CDplayer類中聲明自動裝配一個CD(有兩種方法,一種是構造器法,一種Setter方法):

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@ Component
public class CDPlayer{
     private CD cd;
     
    at Autowired
    public CDPlayer(CD cd){
            this.cd=cd;
   }
    public void play(){
           cd.play();
    }
}
      最後,用java配置或xml配置啓用組件掃描:

  java方法:

import org.springframework.context.annotation.componentScan;
import org.springframework.context.annotation.Configuration;

@ Configuration
@ ComponentScan
public class CDPlayerConfig{

}

xml方法:

 

<bean>
   <context:component-scan base-package="..."/>
</beans>

                                         二、通過Java代碼裝配bean

        用@ Bean註解來聲明一個簡單bean,如:

      

@ Bean
public CD oldCd (){
     return new CD();
}
     這個newcd方法會返回一個對象,這個對象要註冊爲Spring應用上下文中的bean。

     接着藉助JavaConfig實現注入:

@ Bean
public CDPlayer  cdPlayer(){
     return new CDPlayer(oldCd());
}
這裏說明CDPlayer也是一個spring中的bean。

   還有一種方法:

 

@ Bean
public CDPlayer cdPlayer(CD cd){
      return new CDPlayer(cd);
}
這種方法,cd既可來自自動xml裝配,也可以是java配置或自動掃描,都可以。

                                          三、通過XML裝配bean

         藉助構造器注入初始化bean:

          ①注入引用:

<bean id="cdPlayer" class="soundsystem.CDPlayer">
    <constructor-arg ref="cd">
</bean>
         ②注入字面量:

<bean id="cd" class="soundsystem.BlankDisc">

  <constructor-arg value="稻香">
   <constructor-arg value="周杰倫">
   <constructor-arg>
        <list>
              <value>,,,</value>
              <value>>...</value>
             <!--這裏是注入List集合-->
       </list>
   </constructor-arg>
</bean>
        ③設置引用屬性:

      

<bean id="cdPlayer" class="soundsystem.CDPlayer">

<property name="cd"  ref="cd">
</bean>
這裏name是屬性名,ref是引用的bean
         ④注入字面量到屬性中:

<bean id="cd" class="soundsystem.BlankDisc">
    <property name="title" value="稻香">
    <property name="歌手" value="周杰倫">
     <property name=“歌詞”>
          <list>
                 <value>第一句</value>
                  <value>第二句</value>
                 <value>第三句</value>
          </lisst>
     </property>
</bean>

                                           四、三種裝配方法的混合使用

               在java註解中可以使用@ import(CDPlayerConfig.class)組合其他java註解,使用@ imortResource("classpath:cd-config.xml")組合其他xml註解,也可以用一個更高級的註解把Java,xml註解組合起來。

              在xml中可以用<import resource="cd-config.xml">引入xml註解,也可以使用<bean class="soundsystem.CDConfig">引入java註解,也可以用一個更高級的xml把java,xml註解組合起來。




 

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