2016-03-07 37 views
0

当前,我们将应用程序的环境属性存储在WEB-INF中的.properties文件中。我们想将它们移到数据库表中。但我们仍然要指定jndi的名称,并且在我们的测试环境中本地运行时,我们希望能够覆盖某些属性,仅用于我们的测试和开发工作区。将属性存储在数据库中,但在本地覆盖

Apache commons的DatabaseConfigurator看起来很不错,但是对jndi名字被定义为文件中的一个属性并不好用。我没有做任何事情要求它查看首次运行的属性文件。

我决定继承apache commons的AbstractConfiguration,试图创建一个配置文件来检查文件和数据库是否符合我的要求,但是它并没有真正起作用。 Spring首先要求jndi的名字,可能是因为数据源必须作为参数传递给配置器。

我怎样才能得到我在这里后?主要是数据库中的属性,但文件中的属性会覆盖它们。并且数据源的jndi名称不必在spring配置中进行硬编码。

回答

0

为什么不写一个ApplicationContext侦听器,它将从您的数据库读取配置并将它们注入到JNDI中?然后你可以用一个context.xml文件覆盖JNDI中的配置,该文件将被放置在src/local/webapp/META-INF /中。

这就是我们如何在我们的webapp中得到这个工作。