티스토리 뷰
728x90
반응형
spring 설정 xml에 다음과 같은 구문을 추가합니다.
1. 외부 설정 프로퍼티
// jdbc.properties 파일
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://dbserver:3306/test
jdbc.username=test
jdbc.password=1234
// files.properties 파일
#### File Path ####
file.path=C:\\
2. PropertyPlaceholderConfigurer 클래스 사용하는 경우
- 주의점은 두개 이상의 PropertyPlaceholderConfigurer 빈을 설정하면 안된다는 점입니다.
- 이 경우 첫번째의 PropertyPlaceholderConfigurer의 설정이 적용되며, 두번째 설정 내용은 적용되지 않습니다. => 각각의 PropertyPlaceholderConfigurer 빈은 서로 프로퍼티 정보를 공유하지 않기 때문입니다.
- 하나의 프로퍼티 파일만 등록한다면 <list> 요소는 필요없게 됩니다.
- 빈 설정이 끝난 이후 ${} 표현을 찾아 해당하는 프로퍼티로 치환해준다는 의미입니다.
- 프로퍼티 파일에 포함된 프로퍼티의 값은 ${jdbc.driver} 형식으로 사용할 수 있습니다. 즉 dataSource의 빈 내용중 ${jdbc.driver}는 프로퍼티 파일의 jdbc.driver 값으로 대체됩니다.
<bean class="org.springframwork.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:META-INF/jdbc.properties</value><!-- 프로퍼티 파일 경로 지정 -->
<value>classpath:META-INF/files.properties</value><!-- 프로퍼티 파일 경로 지정 -->
</list>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
3. <context:property-placeholder> 요소를 사용한 외부 설정 프로퍼티 사용하는 경우
- <context:property-placeholder>는 외부 프로퍼티 파일을 로딩하도록 설정할 수 있습니다.
<!--두 개이상 프로퍼티 사용할 수 있다.(콤마로 구분하여)-->
<context-property-placeholder location="classpath:META-INF/jdbc.properties, classpath:META-INF/files.properties"/>
<!--확장자가 .properties 인 파일을 모두 등록 -->
<context-property-placeholder location="classpath:META-INF/*.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
4. <util:properties> 요소를 사용한 외부 설정 프로퍼티 사용하는 경우
- Spring 3.0 이상부터 지원합니다.
- 프로퍼티 파일 내용을 Properties 타입의 빈으로 생성합니다.
- #{빈아이디['프로퍼티Key']} 처럼 사용합니다.
- <context:property-placeholder> 요소는 확장자가 .properties인 파일을 모두 등록할 수 있었지만 <util:properties>는 하나씩만 등록할 수 있습니다.
<util:properties id="properties" location="classpath:META-INF/jdbc.properties" />
<util:properties id="properties" location="classpath:META-INF/files.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="#{properties['jdbc.driver']}" />
<property name="url" value="#{properties['jdbc.url']}" />
<property name="username" value="#{properties['jdbc.username']}" />
<property name="password" value="#{properties['jdbc.password']}" />
</bean>
728x90
반응형
'JAVA > Spring' 카테고리의 다른 글
Spring - @Autowired와 @Qualifier의 차이점과 @Autowired의 바인딩 방법 (0) | 2021.10.30 |
---|---|
Spring - XML 빈 설정 중 싱글턴 빈과 프로토타입 범위 빈의 의존성 (0) | 2021.10.25 |
Spring - XML Collection List, Set, Map, Property 사용 방법 (0) | 2021.10.18 |
Spring - Bean설정 시 생성자 인자 연결 (0) | 2021.10.18 |
Spring - 빈의 범위(Bean Scope) (0) | 2021.10.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- spring boot 엑셀 다운로드
- 서비스 기반 아키텍처
- redis 대기열 구현
- JDK Dynamic Proxy와 CGLIB의 차이
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- polling publisher spring boot
- microkernel architecture
- transactional outbox pattern
- space based architecture
- 람다 표현식
- pipeline architecture
- spring boot redis 대기열 구현
- spring boot redisson destributed lock
- 트랜잭셔널 아웃박스 패턴 스프링부트
- transactional outbox pattern spring boot
- service based architecture
- @ControllerAdvice
- 레이어드 아키텍처란
- pipe and filter architecture
- redis sorted set으로 대기열 구현
- spring boot redisson sorted set
- spring boot excel download oom
- spring boot redisson 분산락 구현
- 공간 기반 아키텍처
- 자바 백엔드 개발자 추천 도서
- java ThreadLocal
- java userThread와 DaemonThread
- redis sorted set
- spring boot poi excel download
- spring boot excel download paging
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함