Spring application context external properties?

Mam aplikację wiosenną i jak na razie działa dobrze. Teraz chcę Plik Właściwości w zewnętrznym folderze config, a nie w packed jar, aby zmienić rzeczy bez konieczności przepakowywania. Oto co mam:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<!-- <property name="locations" value="classpath:/springcontext.properties"/>  -->
<property name="locations" value ="config/springcontext.properties" />

Outcomed one is working and the other one I dont get to work : / Can someone help?

Edytuj: Thx 4 komentarzy do tej pory.

Może moje pytanie nie było wystarczająco jasne:). Wykonuję Maven build i wszystko będzie pakowane i chcę tego folderu nie ma w package nut obok outcomming jar i w tym folderze chcę Plik Właściwości. możliwe?

Author: Dennis Ich, 2011-11-25

7 answers

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

Jeśli umieścisz go gdzieś w classpath w katalogu o nazwie spring( odpowiednio Zmień nazwy/dirs), możesz uzyskać dostęp z powyższego

<property name="locations" value ="config/springcontext.properties" />

To będzie wskazywało na web-INF/classes/config / springcontext.właściwości

 11
Author: fmucar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-25 14:44:40

Możesz spróbować czegoś takiego:

<context:property-placeholder 
        location="${ext.properties.dir:classpath:}/servlet.properties" />

I zdefiniuj właściwość ext.properties.dir w serwerze aplikacji / jvm, w przeciwnym razie domyślna lokalizacja właściwości "classpath: /" (tzn.słoik lub .wojny) byłoby użyte:

-Dext.properties.dir=file:/usr/local/etc/

BTW, bardzo przydatny Blog post .

 45
Author: masted,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-24 14:18:31

Możesz użyć prefiksu file, aby załadować zewnętrzny plik kontekstu aplikacji, coś takiego jak to

  <context:property-placeholder location="file:///C:/Applications/external/external.properties"/>
 11
Author: Prasanna Talakanti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-25 17:24:24
 9
Author: Sridhar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:35:50

To pytanie jest trochę stare, ale chciał podzielić się czymś, co działa dla mnie. Mam nadzieję, że będzie to przydatne dla osób, które szukają informacji o dostępie do właściwości w zewnętrznej lokalizacji.

To mi się udało.
  1. Zawartość pliku właściwości:

    PROVIDER_URL=t3://localhost:8003,localhost:8004
    
  2. applicationContext.xml Zawartość pliku: (Spring 3.2.3)

    Uwaga: ${user.home} jest właściwością systemu operacyjnego.

    <context:property-placeholder system-properties-mode="OVERRIDE" location="file:${user.home}/myapp/latest/bin/my-env.properties"/>
    
    <bean id="appsclusterJndiTemplate" class="org.springframework.jndi.JndiTemplate">
        <property name="environment">
            <props>
                <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
                <prop key="java.naming.provider.url">${PROVIDER_URL}</prop>
            </props>
        </property>
    </bean>
    

${PROVIDER_URL} został zastąpiony wartością w właściwości pliku

 5
Author: Arun B Chandrasekaran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-08 14:59:35

Jednym ze sposobów jest dodanie zewnętrznego folderu config do ścieżki klas procesu java. Tak często to robiłem w przeszłości.

 2
Author: pap,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-25 14:28:25
<context:property-placeholder location="file:/apps/tomcat/ath/ath_conf/pcr.application.properties" />
To mi pasuje. Ścieżka rozwoju lokalnego jest C:\apps\tomcat\ath\ath_conf i w server/apps/tomcat/ath / ath_conf

Oba działa dla mnie

 1
Author: fjkjava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-21 15:26:57