我正在Java Web項目中工作。 因爲測試,演示和版本對這些文件有不同的值,所以我需要根據環境更改文件「jdbc.properties」和「log4j.properties」的文件夾。動態更改jdbc.properties和log4j.properties的文件目錄
我有這樣的文件夾和子文件夾:
C:\ myProject的\的conf \ dev的 C:\ myProject的\的conf \測試 C:\ myProject的\的conf \演示
我需要把diferent \ myProject的\的conf \ dev的\ log4j.properties C:在每個這些文件夾
的C jdbc.properties和log4j.properties文件\ myProject的\的conf \ dev的\ jdbc.properties
C:\ myProject的\的conf \測試\ log4j.properties C:\ myProject的\ CONF \測試\ jdbc.properties
C:\ myProject的\ CONF \演示\ log4j.properties C:\ myProject的\ CONF \演示\ jdbc.properties
這三個項目是在同一個服務器和相同的Apache(這是一個Web項目)
首先我做了一些更改,使用Windows系統變量來獲取父文件夾(c:\ myProject)。要做到這一點,我做了這個春appContext文件:
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>file:${PARENT_FOLDER}/conf/dev/jdbc.properties</value>
</property>
</bean>
「PARENT_FOLDER」是在Windows環境變量/系統變量
定義這些變化工作確定。
但是,正如你所看到的,我總是尋找熱塑成型爲上「/ conf目錄的/ dev」
我需要動態路徑的「開發」的一部分文件。
I無法使用Windows環境變量/系統變量,因爲3個環境部署在同一臺服務器上。
我想在web.xml上使用「屬性」(使用),但我不知道如何在我的Spring appContext文件中找到屬性。
我definy屬性是這樣的:
<env-entry>
<env-entry-name>ENVIRONMENT</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>Dev</env-entry-value>
</env-entry>
但我不知道如何訪問春
我不知道該怎麼辦「環境」屬性。我有點絕望
有人可以幫助我嗎?
謝謝,對不起我的英文不好
但我需要這樣做,至少JDBC和Log4j。我需要針對這兩個文件的解決方案,並且可能在將來還有另一個文件 –
無論如何,最好在戰爭之外部署log4j.properties。如果這不是你想要的,那麼你可以考慮在啓動tomcat時設置JVM屬性,並在log4j.properties中重用這些屬性,或者設置不同的log4j.properties,並通過設置JVM屬性'-Dlog4j.configuration = log4j告訴tomcat使用哪個屬性。 xml' –
這就是我想要做的。我有外部的「jdbc.properties」和「log4j.properties」文件。 我認爲你不明白我在說什麼 –