我希望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?
编辑:我尝试用其他选项(ENVIRONMENT,NEVER和FALLBACK)替换OVERRIDE,但我总是以本地属性中定义的值结束。
答案 0 :(得分:1)
在Artem Bilan的评论之后,我再次搜索(只是为了确保,没有重复)并找到一个加载相同属性的类,但在Java(Properties.load()
)中。这导致覆盖我试图通过Spring加载的system properties
。
答案 1 :(得分:1)
要向应用程序公开属性文件,我们已完成以下操作:
在名为JBoss
的目录结构中创建了一个com/ourcompany/configuration/main
模块,并将其与所有其他JBoss
模块一起放在模块目录中。
在该目录中创建了一个module.xml。
将所有* .properties文件放在该目录中。
在standalone.xml(JBoss
配置文件)中创建以下内容,以使配置目录对我们的所有应用程序可见,并避免每个应用程序使用jboss-deployment-structure.xml文件。
然后所有属性都在类路径上,如预期的那样。
module.xml:
<module xmlns="urn:jboss:module:1.1" name="com.ourcompany.configuration">
<resources>
<resource-root path="."/>
</resources>
</module>
standalone.xml:
<subsystem xmlns="urn:jboss:domain:ee:1.1">
<global-modules>
<module name="com.ourcompany.configuration" slot="main"/>
</global-modules>
</subsystem>