일단, PropertyPlaceholderConfigurer 객체를 Bean 으로 등록 후,
-
location메서드에 properties 파일의 경로를 준다. ("file:/" or "classpath:/" ) 등.
-
fileEncoding 메서드에는 UTF-8 인코딩을 사용.
<beans:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="location" value="/WEB-INF/config/config.properties"/>
<beans:property name="fileEncoding" value="UTF-8" />
</beans:bean>
여러개의 프로퍼티 파일을 등록 시킬 경우.
<beans:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="locations">
<beans:list>
<beans:value>classpath:/config/config.properties</beans:value>
<beans:value>classpath:/config/config2.properties</beans:value>
</beans:list>
</beans:property>
</beans:bean>
프로퍼티 파일의 키 값( Properties 파일은 Map<String, String> 이라는 것을 기억한다. ) 을 ${} 기호안에 넣어 사용한다.
<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<beans:property name="driverClassName" value="${db.driver}"/>
<beans:property name="url" value="${db.url}">
<beans:property name="username" value="${db.username}"/>
<beans:property name="password" value="${db.password}"/>
</beans:bean>
JavaConfig 에서는 @Bean 으로 스프링이 관리하는 Bean객체로 등록한다.
반드시, static 으로 선언한다. PropertySourcesPlaceholderConfigurer 는 특수한 목적의 Bean 이기 때문에, 정적 메서드로 선언해야만 동작한다.
setLocations() 메서드는 가변인자이기 떄문에, 여러개의 경로를 주어도 무방하다.
@Bean
public static PropertySourcesPlaceholderConfigurer properties(){
PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
configurer.setDefaultEncoding("UTF-8");
configurer.setLocations(
new ClassPathResources("db.properties"), new FileSystemResources("info.properties")
);
return configurer;
}
이후 사용은 @Value 에노테이션을 사용한다. 속성 값으로는 ${} 플레이스 홀더를 이용하여 Properties 파일의 키 값 을 준다.
@Configuration
public class test {
@Value("${db.driver}")
private String driver;
...
}
<context:property-placeholder> 태그를 이용해서 읽어올 수도 있다고 한다. location 속성은 properties 파일의 경로이다.
context: 가 붙었으므로, NameSpace 탭에서 context를 체크해야 사용이 가능하다.
<context:property-placeholder location="classpath:config/*"/>
이후 사용은 JSP, @Configuration( 설정클래스 ) , @Bean( 스프링 관리 객체 ) setter 메서드 , 인스턴스 변수 등, 사용이 가능하다.
'springframework' 카테고리의 다른 글
스프링 프레임 워크 핵심 기술 - 1.Ioc컨테이너와 Bean (0) | 2020.08.11 |
---|---|
ClassPathResource 객체와 FileSystemResource 객체 (0) | 2020.08.10 |
Hikari CP (DBCP) ....DataSource 설정 (0) | 2020.08.10 |
DefaultHandler 와 우선순위. (0) | 2020.08.09 |
JavaConfig 에 대한 WAS Exception Handling (0) | 2020.08.09 |