[SPRING] 단일 빈에서 사용하기 위해 여러 파일에서 스프링 특성을 수집하는 방법
SPRING단일 빈에서 사용하기 위해 여러 파일에서 스프링 특성을 수집하는 방법
나는 봄 동안 내 머리를 감싸지 않았다. 그래서이 질문이 의미가 없으면 나에게 맞춰라.
PropertyPlaceholderConfigurer가 있습니다.
<bean id="rdbmPropertiesPlacholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false">
<property name="location" value="classpath:/properties/rdbm.properties" />
</bean>
그리고 나는 콩이 주입 된 것 같아요?
<bean id="PortalDb" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${hibernate.connection.driver_class}" />
<property name="url" value="${hibernate.connection.url}" />
<property name="username" value="${hibernate.connection.username}" />
<property name="password" value="${hibernate.connection.password}" />
...
내가 원하는 것은 사용자 이름 / 암호로 다른 속성 파일을 가리키는 두 번째 자리 표시 자로 속성을 두 개의 다른 파일로 나눌 수 있습니다. 그런 다음 데이터베이스 연결 정보를 db 사용자 이름 / 암호와 분리하여 사용할 수 있습니다.
기본적으로 rdbmPropertiesPlaceholder를 다른 ID와 파일로 복사하고 속성에 액세스하려고 시도했지만 작동하지 않습니다.
이 코드는 uPortal 오픈 소스 웹 포털 프로젝트에서 가져온 것입니다.
해결법
-
==============================
1.이 표기법을 사용하면 여러 파일을 지정할 수 있습니다.
이 표기법을 사용하면 여러 파일을 지정할 수 있습니다.
<bean id="rdbmPropertiesPlacholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false"> <property name="locations"> <list> <value>classpath:/properties/rdbm.properties</value> <value>classpath:/properties/passwords.properties</value> </list> </property> </bean>
propertyplaceholderconfigurerer는 단지 하나만있는 것처럼 보이도록 이들 모두를 병합하기 때문에 bean 정의는 속성의 출처를 알지 못합니다.
-
==============================
2.org.springframework.beans.factory.config.PropertyPlaceholderConfigurer는 이미 대답했듯이이를 수행 할 수 있습니다. 당신이 원할 수있는 일은 이름 공간을 사용하여 모호하지 않고 두 파일에서 같은 이름의 속성을 참조 할 수 있습니다. 귀하의 예를 들어, 당신은 이것을 할 수 있습니다 :
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer는 이미 대답했듯이이를 수행 할 수 있습니다. 당신이 원할 수있는 일은 이름 공간을 사용하여 모호하지 않고 두 파일에서 같은 이름의 속성을 참조 할 수 있습니다. 귀하의 예를 들어, 당신은 이것을 할 수 있습니다 :
<bean id="generalPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:/properties/general.properties"/> </bean> <bean id="db.PropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:/properties/rdbm.properties" /> <property name="placeholderPrefix" value="$db{" /> <property name="placeholderSuffix" value="}" /> </bean>
컨텍스트 파일에서 $ {someproperty}로 일반 속성을 참조하고 $ db {someproperty}로 rdbm 속성을 참조 할 수 있습니다.
이렇게하면 컨텍스트 파일이 개발자에게 훨씬 명확하고 명확 해집니다.
from https://stackoverflow.com/questions/534199/how-to-collect-spring-properties-from-multiple-files-for-use-on-a-single-bean by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 스케줄러 종료 오류 (0) | 2019.01.30 |
---|---|
[SPRING] 스프링 보안 3으로 해싱 및 솔팅 암호 (0) | 2019.01.30 |
[SPRING] JPA와 함께 Spring Security 사용 (0) | 2019.01.30 |
[SPRING] 스프링 보안 oauth2 및 양식 로그인 구성 (0) | 2019.01.30 |
[SPRING] 서블릿 매핑 url-pattern에서 이중 와일드 카드 (*)는 무엇을 의미합니까? (0) | 2019.01.30 |