一、SpringBean的高级配置
1.配置profile bean
Spring为环境相关的bean所提供的解决方案其实与构建时的方案没有太大的区别,当然,在这个过程中需要根据环境(开发环境、测试环境还是生产环境)决定该创建哪个bean和不该创建哪个bean。不过Spring并不是在构建的时候做出这样的决策,而是等到运行时再来决定。这样的结果就是同一个部署单元能够适用于所有的环境,没有必要进行重新构建。
在Spring 3.1版本中引入了bean profile的功能。要使用profile,你首先要将所有不同的bean定义整理到一个或多个profile中,在将应用部署到每个环境时,要确保对应的profile处于激活的状态。
1.配置profile bean
Spring为环境相关的bean所提供的解决方案其实与构建时的方案没有太大的区别,当然,在这个过程中需要根据环境(开发环境、测试环境还是生产环境)决定该创建哪个bean和不该创建哪个bean。不过Spring并不是在构建的时候做出这样的决策,而是等到运行时再来决定。这样的结果就是同一个部署单元能够适用于所有的环境,没有必要进行重新构建。
在Spring 3.1版本中引入了bean profile的功能。要使用profile,你首先要将所有不同的bean定义整理到一个或多个profile中,在将应用部署到每个环境时,要确保对应的profile处于激活的状态。
在Java配置中,可以使用@Profile注解指定某个bean属于哪个profile。
(1)@Profile类级别
注:代码为Spring实战中原版代码
注解@Profile(“dev”)指明了该profile属于dev这个profile,我用红色特意标注了,注解是在类级别上的,它会告诉Spring该类下的bean在dev的profile激活时才会被加载,否则忽略这些bean
(2)@Profile方法级别
注:代码为Spring实战中原版代码
同类级别相似,@Profile(“dev”)指明了属于dev这个profile,当dev profile被激活时,这个@Bean注解的bean才会被加载。
2.在xml中配置profile
也可以在<beans>中通过设置profile属性配置profile bean。格式如下:
<beans
...........
profile="dev">
。。。。。
</beans>
同样的,如果需要配置多个profile bean,可以在<beans>中嵌套<beans>,然后通过设置profile属性配置profile bean。格式如下:
<beans
......>
<beans profile="dev"></beans>
<beans profile="pro"></beans>
....
</beans>