簡體   English   中英

使用JBoss EAP 6.2的Spring 3.2 PropertySourcesPlaceholderConfigurer

[英]Spring 3.2 PropertySourcesPlaceholderConfigurer with JBoss EAP 6.2

我希望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,但我總是最終得到一個在本地屬性中定義的值。

在Artem Bilan的評論之后,我再次搜索(只是為了確保,沒有重復)並找到了一個加載相同屬性的類,但在Java( Properties.load() )中。 這導致覆蓋我試圖通過Spring加載的system properties

要將屬性文件公開給應用程序,我們已完成以下操作:

  • 在名為com/ourcompany/configuration/main的目錄結構中創建了一個JBoss模塊,並將其與所有其他JBoss模塊(在modules目錄中)一起放置。

  • 在該目錄中創建了一個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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM