Spring的配置方式由最早的xml配置,到xml+注解的配置方式(java 5.0引入一个非常重要的特性:注解)。随着Spring大量使用xml配置被诟病,Spring3.0推出javaConfig的配置方式。也就是java代码+注解来替代原来的xml+注解的配置方式。
1.bean定义
- xml配置方式
<beans>
//这里就是往容器中生成一个id为button的bean 当然也可以打开注解扫描使用@Service、@Component等注解来配置
<bean id="button" class="javax.swing.JButton">
<constructor-arg value="Hello World" />
</bean>
</beans>
- javaConfig配置方式
//这个注解表明这是配置类 相当于spring配置文件
@Configuration
public class MigratedConfiguration {
//这个注解表示注册一个bean对象 注解name值即它的id 方法返回值就是bean对象 如果注解没有name值则方法名就是id
@Bean
public JButton button() {
return new JButton("Hello World");
}
}
2.多配置文件加载
- xml配置方式
在spring配置文件中使用<import>
节点加载另一个配置文件
<beans>
<import resource="customerConfig.xml"/>
<import resource="schedulerConfig.xml"/>
</beans>
- javaConfig配置方式
//在配置类中使用@Import注释引入另一个配置类当然下面的CustomerConfig.class也得是配置类
@Configuration
@Import({ CustomerConfig.class, SchedulerConfig.class })
public class AppConfig {
}
3.扫描注解bean
- xml配置方式
//开启annotation
//<context:annotation-config/>
//扫描这个包下的annotation(已包括上面的<context:annotation-config/>)
<context:component-scan base-package="com.test"/>
- javaConfig配置方式
//这里就包含了<context:annotation-config/>的功能
@ComponentScan(basePackages={"com.test"})
@Configuration
@Import({ CustomerConfig.class, SchedulerConfig.class })
public class AppConfig {
}
在Spring Boot中,Java Config的使用已完全替代了applicationContext.xml,实现了xml的零配置。所以无论从Spring的演进,还是学习Spring Boot的需要,都应该深入学习Spring Java Config的使用方法。
更多JavaConfig知识,参考Spring Boot之Spring Java Config