스프링 프로젝트를 하면서 jdbc 설정 값, version 등과 같이 정적인 데이터를 프로퍼티로 많이 사용합니다. 우리는 프로퍼티를 annotation으로 쉽게 외부값을 가져와서 사용할 수 있습니다.
스프링에서 런타임시 프로퍼티 값을 가져오기 위해서 사용할 것 2가지.
- PropertySource
- 스프링 표현 언어 SpEL(spring Expression Language)
@PropertySource를 선언.
@Configuration
- @PropertySource 어노테이션에 coommon.properties의 위치를 넣어주면, Enviroment객체에 프로퍼티 값이 자동으로 주입된다.
common.properties 설정
my.name=ryudungmy.age=29my.status=tiered
common.properties에 주입할 데이터를 properties형태로 생성.
Enviroment를 사용할 EnvUser
@Component
Environment를 자동와이어한 후 getProperty를 통해서 프로퍼티값을 확인할 수 있다.
결과
ryudung001-0023-23332964에러 발생true
@PropertySource 스프링 4.0에 추가된 옵션 - ignoreResourceNotFound
@Configuration
- 배열 형태로 properties 위치를 정의할 수 있다. 여기서 point는 스프링 4.0부터 추가된 ignoreResourceNotFound = true 이다. ignoreResourceNotFound 옵션을 통해서 없는 properties는 무시해버린다.
- 예상 했듯이 당연히 아래로 갈수록 같은 프로퍼티명을 override 해버린다.
- 개발, qa, 실서버 마다 프로퍼티값이 다를 수 있는데 이를 잘 이용하면, 적절히 적용할 수 있다.
----------------------------------------------------------------------------------
다음편에서는 @value를 사용하는 방법에 대해서 설명하겠습니다.
'backend > Spring' 카테고리의 다른 글
intellij로 visualVM을 쉽게 사용하기. (0) | 2017.11.15 |
---|---|
스프링 프로퍼티 설정 주입3 - 실시간(run-time)으로 properties Relaod (0) | 2017.10.18 |
스프링 소개(introduction)-정리 (0) | 2017.10.12 |
스프링 프로퍼티 설정 주입2 - @Value를 사용하자 (0) | 2017.10.11 |
02. 스프링 시큐리티(spring-security)02 - DB와 연동(유저, 유저권한) (0) | 2017.10.03 |