在sprng中各种bean配置方案并非互斥,我们可以将JavaConfig的组件扫描和自动装配或xml配置混合在一起
- 在Javaconfig中引用xml配置
package soundsystem;
import org.springframework.context.annotation.Bean;
import org.sprignframewotrk.context.annotation.Configurtaion'
@Configuration
public class CDConfig{
@Bean
public CompactDisc compactDisc(){
return new SgtPeppers();
}
}
在CDPlayerConfig引入CDConfig
package soundsystem;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(CDConfig.class)
public class CDPlayerConfig{
public CDPlayer cdPlayer(CompactDisc compactDisc){
return new CDPlayer(compactDisc);
}
}
或者不在CDPlayer中使用Import注解,创建一个更高级别的配置类SoundSystemConfig,在这个配置类中使用@Import将两个配置类组合到一起
package soundsystem;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.import;
@Configuration
@Import({CDPlayerConfig.class,CDConfig.class})
public class SoundSystem{
}
引入xml配置:
package soundsystem;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.import;
@Configuration
@Import({CDPlayerConfig.class,CDConfig.class})
@ImportResource("classpath:cd-config.xml")
public class SoundSystem{
}
xml配置如下:
<bean id="compactDics" class="soundsystem.BlankDisc" p:title="Sgt.Pepper's Lonely Hearts Club Band" p:artist="The Beatles">
<propertyname="tracks">
<list>
<value>Sgt.Pepper's Lonely Hearts Club Band</value>
<value>With a Little Help from my friends</valuey>
</list>
</propert>
</bean>
- 在xml配置中引入JavaConfig
<? xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemalocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans,xsd">
<!-- 引入JavaConfig配置 -->
<bean class="soundsystem.CDConfig" />
<!-- 引入xml配置 -->
<import resource="cdplayer-config.xml">
</beans>