一. 问题
在实际开发中,通常服务器都很多,每台服务器上的应用都需要配置参数,如果有修改或者变动就会很麻烦,每台服务器都需要改一次。所以有必要把一些参数配置到数据库里,这样方便查看和管理。
来看一个实际例子,我们在Spring中加载配置的代码为:
我们把配置都集中放到config.properties里,方便管理。如果是变动了,所有服务器上都需要更改一次。
二. Spring 的已有解决办法
http://www.springbyexample.org/twiki/bin/view/Example/SpringModulesWithCommonsConfiguration
这链接介绍了如何实现,主要通过Spring Module 和 Common Configuration 来实现。
三. 我们的实现
以上方法是通过commons-configuration 来实现,这种每次读取和变动都会访问数据库,在我们的实际应用中,应该是启动的时候读取一次就可以了,没有必要占着数据库连接,而且全局配置不允许应用修改的。
借鉴以上方法,我们写了一个类似的类来实现。
配置如下:
文件和数据库混合配置,文件的配置优先。
源码如下:
完