在做SOA项目过程中,数据源配置采用配置化方式注入。系统采用分库分表且包含其他数据源(如ob),配置文件是通过数据源列表形式加载。
由于在不同环境中上层应用使用不同数据库(如日常、线上、国内、国外、迁移库等),就会有很多个配置文件来统一管理数据源配置。上层应用通过不同的配置文件路径来引用不同的数据源配置。
但是这种方式扩展性不强,且这些配置文件内部结构基本一致,唯一不同的是值不同。而不同环境可能某些配置又是相同的,且数据源有十多个大小的列表,基于这个原因放弃了通过antx配置化方式解决。
经过了解spring的spel可以通过条件判断来加载bean的属性值,和这种场景比较谋和。
代码示例:
<entry key="appName" value="#{@dbEnv=='daily'||@dbEnv == 'cn' ? 'xxxx1' :(@dbEnv == 'shadow'||@dbEnv == 'shadow_daily' ? 'xxxx2' : '')}" />
参考文章:
http://blog.csdn.net/zhoudaxia/article/details/38174169