使用spring的这几个配置,可以将旧<xml>配置形式完全使用Java实现,也可以和<xml>嵌套使用。
@Configuration和@Bean可以配合使用,案例:
传统XML配置:
<beans>
<bean id="classA" class="com.ClassA">
<constructor-arg ref="ClassB"/>
</bean>
<bean id="classB" class="com.ClassB">
<constructor-arg ref="c"/>
</bean>
<bean id="classC" class="com.ClassC"/>
</beans>
对应的可以使用@Configuration和@Bean来实现:
public class config{
public ClassA classA() {
return new ClassA(classB());
}
public ClassB classB() {
return new ClassB(c());
}
public ClassC classC() {
}
}
@DependsOn注解类似于<xml>的depends-on元素,案例如下:
"classA","classB"})
public class ClassC{
//codes here
}
({
这样,在初始化ClassC之前,一定会先初始化ClassA和ClassB。
@Import是导入通过@Configuration配置的Bean。
先通过@Configuration声明配置类
public class Config {
public ClassA classA () {
return new ClassA();
}
}
然后使用@Import导入配置类
//导入CDConfig的配置
public class ConfigExt {
(name = "classB")
public ClassB classB(ClassA classA) {
// 注入ClassA类型的bean
return new ClassB(classA);
}
}
(Config.class)
@ImportResource类似于XML配置的<import>元素,如:<import resource="importxml.xml" />。
使用方式如下:
<bean id="classA" class="com.ClassA">
<property name="classB" ref="classB" />
</bean>
<bean id="classB" class="com.ClassB"/
Java类注入:
"classpath:importxml.xml") //导入xml配置项
public class ConfigExt{
}
(Config.class)
(