티스토리 뷰
* 환경
Spring boot 2.XX
Eclipse
1. Application 클래스에 다음 어노테이션 추가
@PropertySource(value = {
"classpath:/application-${spring.profiles.active}.properties"
})
- 추가 했는데도 계속 다음 오류 나는 경우?
java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist
=> DB Confg 나 Security Config 파일을 따로 두고 있었는데, 거기서도 @PropertySource 선언해놓은 상태였던 경우..
2. 파일 준비
application-local.properties
application-prd.properties
3. 서버에 파라메터 추가
(이클립스) Server 선택 -> Open launch configuration -> Arguments(탭)
VM arguments 에 파라메터 추가
(주의 : Program arguments 에 하면 안돼)
-Dspring.profiles.active="local"
설정한 파라메터 값에 따라 application-local 또는 application-prd 가 사용됨
* 확인하는 방법
1. 컨트롤러에 다음 변수 선언
@Value("${spring.profiles.active}")
String profile;
2. 위 변수를 화면에 찍어봄.
* 상용 배포 (아파치)
1. 상용 WAR 생성
프로젝트 우클릭 > Maven Build > 우클릭 - new > Main(탭)
Goals : install
parameter 에 spring.profiles.active 추가하여 값 'prd' 로 추가
Run
2. 톰캣 구동시 파라메터 추가
.../tomcat 8.0/bin/setenv.bat 에 파라메터 추가
* 기타
- @Profile 이용하는 방법 (안해봄)