티스토리 뷰
Spring 에서는 다른 환경에서 같은 어플리케이션 코드로 동작할 수 있도록 외부에서 설정을 할 수 있도록 제공해 준다.
로컬, 개발, 상용 등의 환경에서 그에 맞는 설정 파일을 참조하여, 설정 값을 코드에서 읽어 사용을 한다는 뜻이다.
프로파일( Profile )
프로그래밍적으로 활성화 되는, 논리적 그루핑의 이름이라고 할 수 있다.
위에서 언급 한 것 처럼, 일반적으로 개발 환경에 따라 프로파일 명을 지정하여 주로 사용을 한다.
프로파일은 코드 단에서 빈에 정의를 할 수 있고, 설정 파일에도 정의를 할 수 있다.
이러한 프로파일은 한번에 하나 이상의 프로파일을 활성화 할 수 있다.
프로파일 활성화는, 프로그래밍 방식, 환경변수( SPRING_PROFILES_ACTIVE ), JVM -D옵션( -Dspring.profiles.active= ) 등 으로 할 수 있다.
만약 프로파일을 지정하지 않으면, default 프로파일이 활성화 된다.
설정파일( properties )
환경에 따라 달리 사용하는 설정 파일의 값들은 호스트 이름, 로그 Path, Database 접속 정보 등이 될 수 있다.
그리고 이러한 파일은 properties, YAML 파일을 사용할 수 있다.
Property 값은 @Value 를 사용해서 빈에 직접적으로 주입할 수도 있다.
( @EnableConfigurationProperties + @ConfigurationProperties + POJO instance 조합으로 설정파일 값을 저장하는 POJO instance를 정의 할 수도 있다. )
여러 방식으로 property를 설정할 수 있기 때문에, 주어진 순서에 따라 값이 overriding이 가능하다.
구체적인 순서는 참조 url에 문서를 참조하면 된다.( 1번이 최우선순위로 적용 된다 )
몇 가지만 살펴 본다면, Command Line Arguments > OS 환경 변수 > application-{profile}.properties > application.properties 순으로 우선순위가 적용된다.( 좌측이 더 높은 우선 순위로 값을 사용 한다. )
어플리케이션을 개발 할 때, 주로 application.yml ( or application.properties )을 주로 사용하니 이 파일에 대해 알아보겠다.
개발 환경이 로컬, 개발, 사용기가 있다고 했을 때, profile을 local, dev, prod라고 하자.
그러면 아래와 같이 property 파일을 생성할 수 있다.
- local : application.yml
- dev : application-dev.yml
- prod : application-prod.yml
( 필자는, application.yml 을 로컬에 필요한 설정 값과 default로 사용할 설정 값을 저장하고 있다. )
설정 파일은 실행하는 profile 이름에 매칭 되는 파일의 값을 읽어 사용을 하고, 파일명은 application-{profile}.yml 형식이다.
그리고, application-{profile}.yml 의 값이 application.yml 보다 우선순위가 더 높아 위와 같이 파일명을 사용한다.
참조
'Spring' 카테고리의 다른 글
Spring Cloud 호환 버전 (0) | 2020.08.14 |
---|---|
[ Spring ] Cloud Config 구축하기(1) (4) | 2020.07.29 |
[ Spring ] 자바 로깅( Slf4j, Logback, Log4j, Log4j2 )과 logback 설정 방법 (0) | 2020.06.02 |
[ Springboot ] Jackson 라이브러리와 POJO, JSON 변환 (0) | 2020.05.27 |
[ Springboot ] Springboot 내장 tomcat 버전 (2) | 2020.05.27 |
- Total
- Today
- Yesterday
- Filter
- spring
- Index
- docker
- scala
- JPA
- intellij
- Size
- Git
- AWS
- gradle
- JSON
- Linux
- Log
- maven
- apm
- Container
- Spark
- logstash
- SpringBoot
- Java
- tomcat
- spring boot
- install
- Postman
- elasticsearch
- plugin
- error
- Kibana
- mac
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |