通过 java 代码装配 bean
? 在进行显式装配的时候, 有两种选型方案: java 和 XML 配置, 这里先介绍 java 的配置方式.
2.3.1 创建配置类
先复习下上一章的配置内容:
- @Configuration
- public class SgtPeppers implements CompactDisc {
- private String title = "sgt";
- private String song = "Twinkle, twinkle, little start";
- public void play() {System.out.println("title:" + title + "song:" + song);
- }
- }
? 这里我们移走了 @ComponentScan 的注解 mailto:这里我们移走了@componentscan的注解 , 只留下了 @Configuration 的注解 mailto:只留下了@configuration的注解 , 表明这个类是一个配置类, 不包含如何实现 bean 的细节, 如果单纯的这样运行的话, 测试会失败并出现 BeanCreation-Exception 异常. 测试期望被注入 CDPlayer 和 CompactDisc, 但是这些 bean 根本就没有创建, 因为组件扫描不会发现他们. 为了测试通过就需要加回 @ComponentScan 的注解 mailto:因为组件扫描不会发现他们.为了测试通过就需要加回@componentscan的注解 .
2.3.2. 声明简单的 bean
我们要在 javaConfig 中声明 bean, 需要在方法上加上 @Bean 的注解 mailto:需要在方法上加上@bean的注解 , 如下:
- @Bean
- public CompactDisc sgtPeppers(){
- return new SgtPeppers();
- }
默认情况下, bean 的 ID 与带有 @Bean 的注解的方法名是一样的 mailto:bean的ID与带有@bean的注解的方法名是一样的 (本例子是 sgtPeppers), 如果你想设置成一个不同的名字的话, 可以重命名为该方法指定 bean 的 Name 属性 @Bean mailto:可以重命名为该方法指定bean的Name属性@bean (name = "otherName") 的方式来实现.
来源: http://www.bubuko.com/infodetail-2655583.html