복붙노트

[SPRING] Spring, Maven, Eclipses에서 XML 파일의 속성 값을 처리하는 가장 좋은 방법

SPRING

Spring, Maven, Eclipses에서 XML 파일의 속성 값을 처리하는 가장 좋은 방법

Spring 프로그래머가 알고있는 것처럼 XML 파일에 많은 속성 값을 가진 Spring WebFlow 프로젝트를 작업 중입니다. 데이터베이스 사용자 이름, 암호, URL 등이 있습니다.

Spring WebFlow와 Maven에서 Eclipse를 사용하고 있습니다. SA는 빌드를 수행하려고하지만 SA는 값을 변경하기 위해 XML 파일에 들어가기를 원하지 않지만 다른 한편으로는 생산 값을 알 수 없습니다. 우리가 어떻게이 일을해야합니까?

해결법

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

    1.대부분의 SA는 .xml보다는 .properties 파일을 다루는 데 더 많은 의지와 자신감이 있습니다.

    대부분의 SA는 .xml보다는 .properties 파일을 다루는 데 더 많은 의지와 자신감이 있습니다.

    Spring은 모든 것을 하나 또는 여러 개의 .properties 파일로 정의하고 applicationContext.xml의 자리 표시자를 대체 할 수 있도록 PropertyPlaceholderConfigurer를 제공합니다.

    src / main / resources / folder 아래에 app.properties를 만듭니다.

    ... ...
    
    # Dadabase connection settings:
    jdbc.driverClassName=org.postgresql.Driver
    jdbc.url=jdbc:postgresql://localhost:5432/app_db
    jdbc.username=app_admin
    jdbc.password=password
    
    ... ...
    

    그리고 applicationContext.xml에서 PropertyPlaceholderConfigurer를 다음과 같이 사용하십시오 :

    ... ...
    
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="location">
        <value>app.properties</value>
      </property>
    </bean>
    
    ... ...
    
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="${jdbc.driverClassName}" />
      <property name="url" value="${jdbc.url}" />
      <property name="username" value="${jdbc.username}" />
      <property name="password" value="${jdbc.password}" />
    </bean>
    

    자세한 내용은 Spring PropertyPlaceholderConfigurer 예제를 확인하십시오.

    또한 응용 프로그램 배포 관점에서 보면 일반적으로 응용 프로그램을 일부 실행 형식으로 패키지화하고 .properties 파일은 일반적으로 실행 가능한 war 또는 ear 파일 내에 압축되어 있습니다. 간단한 해결책은 PropertyPlaceholderConfigurer 빈을 사전 정의 된 순서로 여러 위치에서 특성을 분석하도록 구성하는 것입니다. 따라서 배치 환경에서 고정 위치 또는 환경 변수를 사용하여 특성 파일을 지정할 수 있습니다. 또한 단순화하기 위해 SA에 대한 deploy / configure 작업은 일반적으로 단일 외부 .properties 파일을 사용하여 다음과 같이 모든 런타임 구성을 정의합니다.

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="locations">
        <list>
          <!-- Default location inside war file -->
          <value>classpath:app.properties</value>
          <!-- Environment specific location, a fixed path on server -->
          <value>file:///opt/my-app/conf/app.properties</value>
        </list>
      </property>
      <property name="ignoreResourceNotFound" value="true"/>
    </bean>
    

    희망이 도움이됩니다.

  2. from https://stackoverflow.com/questions/13297157/best-ways-to-deal-with-properties-values-in-xml-file-in-spring-maven-and-eclips by cc-by-sa and MIT license