복붙노트

[SPRING] Spring 애플리케이션 컨텍스트 외부 특성?

SPRING

Spring 애플리케이션 컨텍스트 외부 특성?

나는 지금까지 Spring 애플리케이션과 잘 작동한다. 이제는 외부 설정 폴더에있는 특성 파일을 원하고 재 포장 할 필요없이 포장 된 항아리에있는 파일을 변경하지 마십시오. 이게 내가 가진거야.

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

outcommented 하나는 작동하고 다른 하나는 내가 일하러 가야 : / 누군가 도울 수 있습니까?

편집하다: Thx 4 댓글은 지금까지.

어쩌면 나의 질문은 충분히 명확하지 않았다 :). Maven 빌드를 수행하면 모든 것이 패키지화되고이 폴더를 outcomming jar 옆의 패키지 너트에 넣지 않고이 폴더에서 속성 파일을 원하게됩니다. 가능한?

해결법

  1. ==============================

    1.

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

    spring (변경 이름 / 디렉토리에 따라)라는 디렉토리에 클래스 경로 어딘가에 배치하면 위의 방법으로 액세스 할 수 있습니다

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

    이것은 web-inf / classes / config / springcontext.properties를 가리키고 있습니다.

  2. ==============================

    2.다음과 같이해볼 수 있습니다 :

    다음과 같이해볼 수 있습니다 :

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

    그리고 응용 프로그램 server / jvm에서 ext.properties.dir 특성을 정의하십시오. 그렇지 않으면 기본 특성 위치 "classpath : /"(즉, .jar 또는 .war의 클래스 디렉토리)가 사용됩니다.

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

    BTW, 매우 유용한 블로그 게시물.

  3. ==============================

    3.파일 접두사를 사용하여 외부 응용 프로그램 컨텍스트 파일을로드 할 수 있습니다.

    파일 접두사를 사용하여 외부 응용 프로그램 컨텍스트 파일을로드 할 수 있습니다.

      <context:property-placeholder location="file:///C:/Applications/external/external.properties"/>
    
  4. ==============================

    4.이 블로그는 귀하를 도울 수 있습니다. 속임수는 SpEL (스프링 표현 언어)을 사용하여 user.home과 같은 시스템 속성을 읽고, SpEL을 사용하여 사용자 홈 디렉토리를 읽고 # {systemProperties [ 'user.home']} 표현식을 Bean 요소 내부에서 사용할 수 있습니다. 예를 들어 홈 디렉토리에 저장된 속성 파일에 액세스하려면 PropertyPlaceholderConfigurer에서 다음을 사용할 수 있습니다.

    이 블로그는 귀하를 도울 수 있습니다. 속임수는 SpEL (스프링 표현 언어)을 사용하여 user.home과 같은 시스템 속성을 읽고, SpEL을 사용하여 사용자 홈 디렉토리를 읽고 # {systemProperties [ 'user.home']} 표현식을 Bean 요소 내부에서 사용할 수 있습니다. 예를 들어 홈 디렉토리에 저장된 속성 파일에 액세스하려면 PropertyPlaceholderConfigurer에서 다음을 사용할 수 있습니다.

     <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>
    
  5. ==============================

    5.이 질문은 일종의 것이지만 나를 위해 일한 것을 공유하고 싶었습니다. 외부 위치에서 속성에 액세스하는 일부 정보를 검색하는 사람들에게 유용 할 수 있기를 바랍니다.

    이 질문은 일종의 것이지만 나를 위해 일한 것을 공유하고 싶었습니다. 외부 위치에서 속성에 액세스하는 일부 정보를 검색하는 사람들에게 유용 할 수 있기를 바랍니다.

    이것이 나를 위해 일한 것입니다.

    $ {PROVIDER_URL}이 (가) 파일의 속성 값으로 대체되었습니다.

  6. ==============================

    6.한 가지 방법은 외부 설정 폴더를 java 프로세스의 classpath에 추가하는 것입니다. 그것이 내가 과거에 종종 해왔 던 방법입니다.

    한 가지 방법은 외부 설정 폴더를 java 프로세스의 classpath에 추가하는 것입니다. 그것이 내가 과거에 종종 해왔 던 방법입니다.

  7. ==============================

    7.

    <context:property-placeholder location="file:/apps/tomcat/ath/ath_conf/pcr.application.properties" />
    

    이것은 나를 위해 작동합니다. 로컬 개발 컴퓨터 경로는 C : \ apps \ tomcat \ ath \ ath_conf 및 server / apps / tomcat / ath / ath_conf입니다.

    둘 다 나를 위해 일한다.

  8. from https://stackoverflow.com/questions/8270290/spring-application-context-external-properties by cc-by-sa and MIT license