0. @PropertySource로 enviroment꺼내기
- common.properties
@Configuration@PropertySource("/common.properties")
doc에서 PropertySource의 다양한 옵션을 확인하시면 좋을거 같습니다.
@Component
- 위와 같이 Environment에서 test.str를 꺼내서 확인 할 수 있습니다.
그럼 이제 @value를 사용해보자.
1.@PropertyPlaceholderConfigurer를 설정.
}
- PropertyPlaceholderConfigurer를 설정하면 @value를 사용할수 있습니다.
- 프로퍼티 플레이스홀더(Property placeholders)
2. @value를 사용하여 변수에 프로퍼티값 매칭
@Component
- Environment로 접근하지 않고 @value 어노테이션을 이용해서 접근(expression 규칙)
- SpEL규칙에서 확인 할 수 있듯이 spring에서는 property값에 대하여 list, map, string fucntion 다양한 parsing 기능을 제공하고 있습니다.
@Component를 이용한 커스터마이징
기본적으로 제공하는 다양한 parsing 기능 이외에 커스터마이징을 구현하고 싶을 수 있다.
이럴경우 @Component를 이용하여 본인만의 로직을 만들어서 사용하면 된다.
-
compile(“com.google.guava:guava:18.0”)를 gradle에 추가.(추가하지 않아도 되지만, Splitter를 사용하여 쉽게 파싱하기 위해서 추가)
-
common.properties에 추가된 내용.
CustomValue를 사용
@Component
- 위에서는 @Value안에 '$'를 사용하여 프로퍼티 값을 그대로 주입해 주었습니다. 하지만 SpEL을 이용하기 위해서는
'#'를 사용한다.
Custom로직을 구현
결과
추가 내용
-
프로퍼티 값이 한글일 경우 유니코드로 변환후 *.properties에 넣어야 한글이 적용됨:변환제공 사이트
-
커스터마이징시 주의사항
’ , ’ 가 포함된 프로퍼티 값은 기본 parsing에 적용되어 있기 때문에, 커스터마이징하여 parsing을 할 경우 에러를 발생 시킬 수 있습니다.
github에서 소스코드 확인:https://github.com/ryudung/value-use-springboot
'backend > Spring' 카테고리의 다른 글
스프링 프로퍼티 설정 주입3 - 실시간(run-time)으로 properties Relaod (0) | 2017.10.18 |
---|---|
스프링 프로퍼티 설정 주입1 - @PropertySource와 Enviroment (0) | 2017.10.14 |
스프링 소개(introduction)-정리 (0) | 2017.10.12 |
02. 스프링 시큐리티(spring-security)02 - DB와 연동(유저, 유저권한) (0) | 2017.10.03 |
01. 스프링 시큐리티(spring-security) - DB와 연동(유저, 유저권한) (0) | 2017.10.03 |