0

我希望 Spring 先检查 JBoss EAP 6.2(使用 JBoss AS 7.2)中的系统属性,然后检查 jar 中的属性。

我试过了

<context:property-placeholder location="classpath:xxx.properties" />

但这使用了 jar 中的属性而不是 JBoss 中的系统属性。我也试过

<context:property-placeholder location="classpath:xxx.properties" system-properties-mode="OVERRIDE" />

应该使用旧的 PropertyPlaceholderConfigurer,但这仍然使用 jar 中的属性。我还尝试设置 3.0(而不是 3.2)spring xsd 但无济于事。

那么如何让 Spring 先检查 JBoss 中的属性,然后检查 jar 中的属性呢?

编辑:我尝试将 OVERRIDE 替换为其他选项(ENVIRONMENT、NEVER 和 FALLBACK),但我总是以在本地属性中定义的值结束。

4

2 回答 2

1

在 Artem Bilan 发表评论后,我再次搜索(只是为了确保没有重复项)并找到了一个加载相同属性的类,但在 Java ( Properties.load()) 中。这会导致覆盖system properties我试图通过 Spring 加载的内容。

于 2014-04-08T08:23:49.973 回答
1

为了向应用程序公开属性文件,我们做了以下工作:

  • JBoss在名为的目录结构中创建了一个模块,com/ourcompany/configuration/main并将其与所有其他JBoss模块一起放置(在模块目录中)。

  • 在该目录中创建了一个 module.xml。

  • 将我们所有的 *.properties 文件放在该目录中。

  • 在standalone.xml(配置文件)中创建以下内容JBoss以使配置目录对我们所有的应用程序可见,并避免每个应用程序都使用 jboss-deployment-structure.xml 文件。

然后所有属性都在类路径上,正如预期的那样。

模块.xml:

<module xmlns="urn:jboss:module:1.1" name="com.ourcompany.configuration">
    <resources>
        <resource-root path="."/>
    </resources>
</module>

独立的.xml:

<subsystem xmlns="urn:jboss:domain:ee:1.1">
    <global-modules>
        <module name="com.ourcompany.configuration" slot="main"/>
    </global-modules>
</subsystem>
于 2014-06-16T13:31:40.430 回答