Spring XML에서 기본 속성 값을 지정하는 방법이 있습니까?
우리는 사용하는 PropertyPlaceholderConfigurer와 (우리의 봄 구성에서 사용하는 자바의 특성을 여기에 세부 사항 )
예 :
<foo name="port">
<value>${my.server.port}</value>
</foo>
추가 속성을 추가하고 싶지만 기존 인스턴스가 모두 기본값을 사용할 수있는 분산 시스템이 있습니다. 재정의 속성 값이 정의되어 있지 않은 경우 Spring 구성에 기본값을 표시하여 모든 속성 파일을 업데이트하지 않는 방법이 있습니까?
여기에 설명 된 PropertyOverrideConfigurer를 찾고 있습니까?
또 다른 빈 팩토리 포스트 프로세서 인 PropertyOverrideConfigurer는 PropertyPlaceholderConfigurer와 유사하지만 후자와는 대조적으로 원래 정의는 기본값을 갖거나 빈 속성에 대한 값이 전혀 없을 수 있습니다. 대체 특성 파일에 특정 Bean 특성에 대한 항목이없는 경우 기본 컨텍스트 정의가 사용됩니다.
Spring 3는 ${my.server.port:defaultValue}
구문을 지원 합니다.
조금 더 잘 알려진 기능이 있습니다. 하드 코딩 된 값 대신 구성 가능한 기본값을 사용할 수 있습니다. 예는 다음과 같습니다.
config.properties :
timeout.default=30
timeout.myBean=60
context.xml :
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>config.properties</value>
</property>
</bean>
<bean id="myBean" class="Test">
<property name="timeout" value="${timeout.myBean:${timeout.default}}" />
</bean>
나중에 쉽게 재정의 할 수있는 동안 기본값을 사용하려면 config.properties에서 다음을 수행하십시오.
timeout.myBean = ${timeout.default}
<foo name="port">
<value>${my.server.port:8088}</value>
</foo>
8088을 기본 포트로 사용하려면 작동해야합니다.
참조 : http://blog.callistaenterprise.se/2011/11/17/configure-your-spring-web-application/
http://thiamteck.blogspot.com/2008/04/spring-propertyplaceholderconfigurer.html 은 빈 자체에 정의 된 "로컬 속성"이 파일에서 읽은 값으로 재정의되는 기본값으로 간주 될 것이라고 지적합니다.
<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"><value>my_config.properties</value></property>
<property name="properties">
<props>
<prop key="entry.1">123</prop>
</props>
</property>
</bean>
기본값은 다음과 :
같이 속성 키 뒤에 올 수 있습니다.
<property name="port" value="${my.server.port:8080}" />
또는 자바 코드에서 :
@Value("${my.server.port:8080}")
private String myServerPort;
보다:
valueSeparator
(부터AbstractPropertyResolver
)및
VALUE_SEPARATOR
(부터SystemPropertyUtils
)
BTW, Elvis 연산자 는 Spring Expression Language (SpEL) 내에서만 사용할 수 있습니다.
예 : https://stackoverflow.com/a/37706167/537554
'developer tip' 카테고리의 다른 글
Android에서 둥근 모서리로 사용자 지정 대화 상자를 만드는 방법 (0) | 2020.09.06 |
---|---|
Nib에서 재사용 가능한 UITableViewCell로드 (0) | 2020.09.06 |
android-HTC 모바일에서 등급 표시 줄을 클릭 및 터치 할 수 없도록 설정하는 방법 (0) | 2020.09.06 |
Process.Start C #에서 콘솔 창 숨기기 (0) | 2020.09.05 |
jQuery 위치 href (0) | 2020.09.05 |