0

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

Apache commons 的 DatabaseConfigurator 看起来不错,但是将 jndi 名称定义为文件中的属性时效果不佳。我没有做任何事情来要求它首先查看属性文件。

我决定将 apache commons 的 AbstractConfiguration 子类化,以尝试创建一个配置器来按我的意愿检查文件和数据库,但同样,它并没有真正起作用。Spring 绝对首先需要该 jndi 名称,可能是因为必须将数据源作为参数传递到配置器中。

我怎样才能在这里得到我想要的东西?大多数是数据库中的属性,但文件中的属性会覆盖它们。数据源的 jndi 名称不必在 spring 配置中硬编码。

4

1 回答 1

0

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

这就是我们如何在我们的 webapp 中使用它。

于 2016-03-07T18:12:47.803 回答