-
[Spring-5]PropertySource 사용하기설치&설정 관련/Spring Framework 2014. 10. 28. 17:11728x90
본 포스팅은 MessageSource 이후 Properties 파일을 이용하여 설정을 하는 내용입니다.
GIT 주소 : https://github.com/lahuman/SpringBoot.Sample
Properties 파일의 용도
보통은 서비스에 필요한 상수 저장용도로 많이 이용합니다.
2000년 초반엔는 SQL도 properties에 저장하여 사용한적이 있습니다.
다만, 서버 기동시 최초 1번만 로딩 되도록 설계하기 때문에 이점을 유의 하시면 됩니다.
물론 재로딩하는 기능을 만들 수 있습니다.
준비 사항
- JDK 1.6 이상
- Gradle 1.11 이상
- IntelliJ
PropertySource 사용하기
1. properties 파일 만들기
properties 파일을 생성한다.
파일 명은 DEV.db.properties, PRODUCT.db.properties 로 개발 시와 배포시 다른 설정이 필요하기 때문에 2종류를 작성한다.
//DEV.db.properties, db.driver=DEV db.url=url db.user=user db.password=password default.locale=ko_KR
//PRODUCT.db.properties, db.driver=PRODUCT db.url=url db.user=user db.password=password default.locale=en_US
2. Application 설정
Application 에서 로드 하려는 Properties파일들을 다음과 같이 annotation으로 선언 한다.
@EnableWebMvc @Configuration @EnableAutoConfiguration @ComponentScan //하나의 properties를 사용할 경우 //@PropertySource("classpath:${APP_ENV:default}.properties") //여러 properties를 사용할 경우 @PropertySources({ @PropertySource("classpath:${APP_ENV:DEV}.db.properties"), @PropertySource("classpath:${APP_ENV:DEV}.setting.properties") //물리 위치에서 파일을 찾을 경우 // @PropertySource("file:/data/${APP_ENV:DEV}.setting.properties") }) public class Application extends WebMvcConfigurerAdapter { static final Logger log = LoggerFactory.getLogger(Application.class); @Autowired private Environment env;
TIP : ${APP_ENV:DEV}의 의미는 환경변수의 APP_ENV 값을 찾아 대입 하라는 의미 이며, 환경변수의 값이 없을 경우 DEV 로 진행하라는 의미 이다.
사용은 다음과 같이 한다.
localeResolver.setDefaultLocale(new Locale(env.getProperty("default.locale")));
3. 테스트
Application.main() 을 기동 하고, /test.do를 호출 하면 다음과 같은 화면을 볼수 있다.
4. 환경변수 설정 & 테스트
이후 환경 변수 APP_ENV를 PRODUCT로 설정 하고 테스트를 진행한다.
환경 변수 설정
WIN 7 기준 :
내 컴퓨터 > 마우스 오른쪽 클릭 > 속성 > 고급 시스템 설정 > 환경 변수 > 사용자 변수 > 새로 만들기
변수명 과 값을 설정 하면 된다.
LINUX 기준 :
export APP_ENV=PRODUCT
변수 확인 방법
WIN 7 기준 :
CMD 창에서 echo %APP_ENV%
LINUX 기준 :
echo $APP_ENV결과 화면 :
TIP : 환경 변수를 설정한 이후 반영된 값을 보기 위해서는 IDE(eclipse or IntelliJ)를 재기동 하여야 한다.
참고 자료 :
http://fahdshariff.blogspot.kr/2012/09/spring-3-javaconfig-loading-properties.html#comment-form
http://www.jayway.com/2014/02/16/spring-propertysource/
http://www.mkyong.com/spring-mvc/spring-mvc-internationalization-example/
728x90'설치&설정 관련 > Spring Framework' 카테고리의 다른 글
BOARD REST API 웹 서비스 만들기 (2) 2015.07.17 [Spring-6]DBMS 연동 (0) 2014.12.12 [Spring-4]국제화 서비스를 위한 MessageSource 설정하기 (0) 2014.10.24 [TIP]AOP : java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut 발생시 확인 사항 (2) 2014.10.21 [Spring-3]UTF-8 Filter 적용 및 ViewResolver 설정 (0) 2014.10.20