混合配置
不知大家可曾想过这样一些问题:“在基于XML或基于Java的显示配置中,假如需要配置的Bean很多,这时把所有Bean的配置信息全都填在一个配置文件里,难道不会导致配置文件非常臃肿,非常难以维护吗?还有,假如因为某些原因不得不把一些Bean的配置信息填在XML配置文件里,把一些Bean的配置信息填在Java配置类里,而XML配置文件里的Bean与Java配置类里的Bean是有依赖关系的,这时又该怎么配置?”
面对这样一些问题,混合配置是个好的解决方案。因为混合配置能把多个XML配置文件,多个Java配置类串联起来,使之作为一个整体能被Spring容器加载之后进行Bean的创建与装配。具体来说,混合配置支持这样一些配置方式:
1.在Java配置类里添加@Import注解,导入其它Java配置类。
2.在Java配置类里添加@ImportResource注解,导入XML配置文件。
3.在XML配置文件里添加<import>元素,导入其它XML配置文件。
4.在XML配置文件里添加<bean>元素,导入Java配置类。
至于这些配置方式具体是怎样的,且让我们分成四个小节仔细谈谈。
@Import注解与Java配置类的导入
顾名思义,@Import注解就是用来导入某些东西的;而这东西,就是Java配置类。比如,我们可把Music类的创建信息放在MusicConfig配置类里:
1 @Configuration 2 public class MusicConfig { 3 @Bean("music") 4 public Music produceMusic() { 5 return new Music("Dream"); 6 } 7 }