목차
로컬과 개발환경, 서비스 환경에 따라
설정을 다르게 하고 싶을 때
프로파일을 설정하고 사용할 수 있다
💡
이 때
방법으로
스프링 자체에서 기능을 사용하는 방법과
프로젝트 관리 도구인 그래들이나 메이븐을 사용하는 방법 ( 여기서는 그래들 사용 )
두 가지가 있다
스프링부트 프로파일 설정
소스는 그대로 빌드 후
스프링 프레임워크가 설정된 프로파일을 사용
application-{profile}.properties 생성
- ex) application-prod.properties, application-dev.properties 생성 후
각 환경에 맞는 설정 값 정의
application.properties 설정
- 활성화할 프로파일을 정의
spring.profiles.active=prod
// spring.profiles.active=dev
- application.properties 에는 공통으로 설정할 값을 정의
+ Configuration 설정
- 프로파일로 프로퍼티(설정파일)말고도
Configuration을 만들어 프로파일에 따라
스프링이 관리할 빈이나 동작을 다르게 할 수도 있다
@Profile("prod")
@Configuration
public class ProdConfiguration() {
@Bean
public String Bean() {
return "prodBean";
}
}
@Profile("dev")
@Configuration
public class DevConfiguration() {
@Bean
public String Bean() {
return "devBean";
}
}
그래들 프로파일 설정
빌드 시점에
프로파일을 구분하여 패키지에 포함
build.gradle 설정
sourceSets {
if (!project.hasProperty('profile') || !profile) {
ext.profile = 'dev'
}
main {
java { srcDirs "src/main/java" }
resources { srcDirs "src/main/resources", "src/main/resources-env/${profile}" }
}
}
- sourceSets을 사용하여 소스와 리소스 파일의 논리적인 그룹을 나누고
src/main/resources-env/${profile}
로 프로파일별로 포함할 리소스 폴더를 구분
- 폴더를 구분하여 빌드에 제외 시킬 수 있음으로
환경에 따라 있을 수 있는 중요 정보의 유출을 막을 수 있다
실행시 옵션 지정
gradle clean build -Pprofile=prod
- 만일
src/main/resources-env/${profile}
안에 있는 프로퍼티(설정파일)이름이 application-{profile}.properties 와 같다면
마찬 가지로 application.properties 에서 활성화할 프로파일를 정의해줘야 한다
참고
스프링 부트 개념과 활용 - 인프런
중급자를 위해 준비한 [프레임워크 및 라이브러리] 강의입니다. 스프링 부트의 원리 및 여러 기능을 코딩을 통해 쉽게 이해하고 보다 적극적으로 사용할 수 있는 방법을 학습합니다. 스프링부트 ( https://spring.io/projects/spring-boot) 프로젝트는 스프링 프레임워크를 더 빠르고 쉽게 사용할 수 있게 도와주는 툴입니다. 본 강좌는 여러분들이 스프링 부트의 여러 기능을 쉽게 이해하고 적극적으로 사용할 수 있는 방법을 제공합니다.
![](https://cdn.inflearn.com/wp-content/uploads/springboot-1-2-1.jpg)
'자바 > 스프링 | 웹' 카테고리의 다른 글
스프링 MVC 구조 및 동작 (0) | 2021.01.31 |
---|---|
Autowired 의존관계 주입 (0) | 2021.01.29 |
UTF-8, CharacterEncoding (0) | 2021.01.15 |
댓글