一、自动化装配
首先,把可能被装配的类声明为组件类,告知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注解组合起来。