背景:
1、项目拆分,分裂出多个环境。每个环境都需要有独立的配置文件。配置信息。
2、多环境,本地开发,开发环境,测试环境,验收环境,伪生产(只有特殊需求使用),生产。
原因:
每次发版都需要手动更改配置文件。从开发提交到生产各个环境的配置信息不一致,每次合并代码都是冲突代码。需手动解决
把配置信息配置到数据库,利用JNDI 或得数据源。这样每次发版只需要把代码部署到对应的服务器。
实现
spring配置文件 定义加载perproties的类
<bean id="configBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>hello.properties</value> </property> </bean>
自己建类继承 PropertyPlaceholderConfigurer 自己做封装处理。覆盖PropertyPlaceholderConfigurer的processProperties方法。在这个方法里面
<bean id="configBean" class="com.demo.util.InitProperties"><!--自己定义的类路径 --> <property name="location"> <value>hello.properties</value> </property> </bean>
这部操做就是把已经加载好的priperties对象.赋值给我们的静态properties对象。我们就可以封装一个静态getProper(String key)
进行全局调用。也可以使用 spring的 @value(“${key}”)进行注入。看自己习惯,
这个只是我们常用满足我们常用的功能。
下面主要说一下 ,怎么把配置文件配置到数据库。也是基于这个InitProperties。主要是覆盖PropertiesLoaderSupport这个抽象类的mergeProperties,这个类是spring-core模块里面
下面就具体的看一下
这一步感兴趣的朋友也可以点进去看一看。主要是简单的读取操作。
到这里就已经实现了 spring项目的properties属性配置数据库 需求。如果有更好的想法或者意见可以给我留言。