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注解组合起来。




猜你喜欢

转载自blog.csdn.net/qq_37372007/article/details/76408902