《Spring 实战》 读书笔记 第二章
Spring配置的可选方案
- 隐式的bean发现机制和自动装配
- 在Java中进行显示配置(本章)
- 在XML中进行显示配置
尽可能地使用自动配置的机制。显示配置越少越好(有些源码不是你来维护的,而当你需要为这些代码配置bean的时候,需要显示配置bean)。推荐使用类型安全并且比xml更加强大的JavaConfig。最后,只有当你想要使用便利的xml命名空间,并且在JavaConfig中没有同样的实现时,才使用xml。
尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化配置是更为推荐的方式,但有时候自动化配置的方案行不通,因此需要明确配置Spring。比如说,你想要将第三方库中的组件装配到你的应用中,在这种情况下,是没有办法在它的类上添加@Component和@Autowired注解的,因此就不能使用自动化装配方案了。
在这种情况下,你必须要采用显示装配方式,在进行显示配置时,有两种可选的方案:Java和Xml。在这节中,介绍Java配置。
创建配置类
@Configuration
public class CDPlayerConfig {}
@Configuration注解表明这个类是一个配置类,该类应该包含在Spring应用上下文中如何创建bean的细节
这里把依赖扫描@ComponentScan注解移除掉,因为我们想要显示配置。
声明简单的bean
要显示声明bean,需要编写一个方法,这个方法会创建所需类型的实例,然后给这个方法添加@Bean注解。
@Bean注解会告诉Spring这个方法将会返回一个对象,该对象要注册为Spring应用上下文中的bean。
@Configuration
public class CDPlayerConfig {
@Bean
public CompactDisc compactDisc() {
return new SgtPeppers();
}
}
默认情况下,bean的ID与带有@Bean注解的方法名是一样的,在本例中,bean的名字将会是compactDisc,如果你想为其设置成一个不同的名字的话,那么可以重命名该方法,或者也可以通过name属性指定一个不同的名字。
@Bean(name = "helloWorld")
public CompactDisc compactDisc() {
return new SgtPeppers();
}
默认情况下,Spring中的bean都是单例的,
网友评论