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?
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
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 .
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"/>
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
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>file:#{ systemProperties['user.home']}/ur_folder/settings.properties</value>
</property>
</bean>
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.-
Zawartość pliku właściwości:
PROVIDER_URL=t3://localhost:8003,localhost:8004
-
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
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.
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
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