1 创建配置类
package soundsystem;
import org.springframework.context.annotation.Configuration;
@Configuration
public class CDPlayerConfig(){
}
2 声明简单的bean
@Bean
public CompactDisc sgtPeppers(){
return new SgtPeppers();
}
@Bean注解会告诉Spring这个方法将会返回一个对象,该对象要注册为Spring应用上下文中的bean。默认情况下,bean的ID与带有@Bean注解的方法名是一样的。在本例中,bean的名字将会是sgtPeppers。如果你想为其设置成一个不同的 名字的话,那么可以重命名该方法,也可以通过name属性指定一个不同的名字:
@Bean(name="lonelyHeartsClubBand")
public CompactDisc sgtPeppers(){
return new SgtPeppers();
}
3 借助JavaConfig实现注入
声明CDPlayerbean,它依赖 于CompactDisc
@Bean
public CDPlayer cdPlayer(){
return new CDPlayer(sgtPeppers())
}
也可以装配多个
@Bean
public CDPlayer cdPlayer(){
return new CDPlayer(sgtPeppers())
}
@Bean
public CDPlayer anotherCDPlayer(){
return new CDPlayer(sgtPeppers())
}
默认情况下,Spring中的bean都是单例 的,我们并没有必要为第二个CDPlayer bean创建完全相同的SgtPeppers实例。所以,Spring会拦截对sgtPeppers()的调用并确保返回 的是Spring所创建的bean,也就是Spring本身在调用sgtPeppers()时所创建的CompactDiscbean。因此,两个CDPlayer bean会得到相 同的SgtPeppers实例。
另一种写法:
@Bean
public CDPlayer cdPlayer(CompactDisc compactDisc){
CDPlayer cdPlayer = new CDPlayer(compactDisc);
cdPlayer.setCompactDisc(compcatDisc);
return cdPlayerl;
}