properties 분리
아래 3가지 방법을 혼합해서 사용 가능하지만 1번과 같은 스프링에서 기본적으로 읽는 순서에 따라 속성이 무시될수 있다.
- war/jar 파일에 포함하지 않고 경로 지정해서 읽기
- 설정 파일 위치 지정 / 외부에 노출될수 있다.
- 빌드 후 변경해야할 때 / 실서버에 접근하기 힘들때
- 배포 파일을 직접 고객(?)에게 전달해야하는 경우 / DB 접속 정보를 모를 때 등...
- spring.profiles.active 옵션을 통해서 선택
- 어플리케이션(jar/war) 실행 옵션을 통해 properties 파일을 선택할수 있다.
- 개발과 배포에 따른 설정파일을 분리 생성
- dev/prod 등 properties파일이 함께 jar/war에 포함
- maven의 profile 설정을 통하여 읽기
- local/dev/prod등 배포 대상에 해당하는 설정파일을 폴더별로 관리하기 편하다.
- 배포 환경별 설정파일이 여러개인 경우
- war/jar에 배포 대상별 설정 파일이 모두 포함되지 않기 때문에 배포 별로 빌드를 해야한다.
properties 분리 - 경로 지정해서 읽기
- springboot 에서 application.properties 파일을 읽는 위치 순서
- 1번이 우선순위가 제일 높음
- A /config subdir of the current directory.
- The current directory
- A classpath /config package
- The classpath root
spring.config.location 옵션을 사용하여 변경 가능하지만 properties파일이 여러개인 경우 모두 선언해야함(jar/war에 포함된 properties파일도 해당)
java -jar myproject.jar --spring.config.location=default.properties,classpath:/override.properties
properties 분리 - spring.profiles.active 옵션
- 파일은 구분하기 쉽게 배포 방식별로 작성
- application-[name].properties
application-dev.properties
application-prod.properties
- 사용할 application 설정파일에 속성 추가
spring.profiles.active=dev
spring.profiles.active=prod
properties 파일 선택
1. 배포파일 실행시 선택
Dspring.profiles.active 옵션을 사용하여 선택
// application.properties
- java -jar demo.war
// application-prod.properties
- java -jar -Dspring.profiles.active=prod demo.war
// application-dev.properties
- java -jar -Dspring.profiles.active=dev demo.war
2. 개발툴 실행시 선택 - eclipse
아래 2가지 방법 중 선택
1. VM arguments 변경
프로젝트 선택 -> Run As -> Run Configurations
-> Spring Boot App -> 프로젝트 선택 -> Arguments 탭 -> VM arguments 항목
-> 아래 내용 추가
-DSpring.profiles.active=dev
// or
-DSpring.profiles.active=prod
2. 실행 옵션 변경
프로젝트 선택 -> Run As -> Run Configurations
-> Spring Boot App -> 프로젝트 선택 -> Spring Boot 탭 선택
-> Profile 항목에서 사용할 properties 선택 (dev/prod... 등)
'spring' 카테고리의 다른 글
[개발환경] Ubuntu - jdk tar.gz 설치 (0) | 2022.09.23 |
---|---|
[Springboot-junit] - JPA 테스트/@DataJpaTest (0) | 2022.03.06 |
[Spring] properties 설정 분리(2) (0) | 2021.02.17 |
[Springboot-junit4] controller 테스트하기 (0) | 2019.06.09 |
[spring] json 샘플 (0) | 2017.06.27 |