src/main/resources 디렉토리에 application-${profile}.properties 형태로 만들어 실행옵션에 active profile로 사용할
.properties 파일을 지정하여 환경마다 다른설정을 했습니다.
하지만 이러한 설정은 빌드된 파일안에 모든 환경 .properties 파일이 노출된다.
이러한 단점을 구분하기 위해 resources-${profile} 폴더를 추가하여 각 환경마다 다른 .properties 파일을 사용하면 된다.
설정하는 방법은 아래와 같다.
1. Spring Boot Project 생성
2. pom.xml 에 <profiles><profile><profile></profiles>, <resources><resources></resource></resources> 태그 설정
2-1. Profile 설정
...
</dependencies>
<!-- dependencies 태그 바로 밑에 추가한다. -->
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>local</spring.profiles.active>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
</profiles>
위 내용을 보면 총 Profile은 2개이다. local에서 사용할 local Profile 그리고 dev Profile 이다.
local Profile 설정파일은 src/mail/resources-local 이라는 source folder를 생성하고 그 안에 설정파일은
new>file>application.yml로 생성했다. 해당 resource-local 경로에 있는 application.yml은 local 환경에서
개발할 때 사용할 설정파일이다.
위 resources-local 파일에 대한 설정을 해줘야한다. 기본 src/mail/resources 파일 이외의
src/mail/resources-local Source Folder에 대한 설정을 따로 해줘야한다.
2-2. resources-${profile} 설정
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/resources-${spring.profiles.active}</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
생성한 src/main/resources-local 에 대해 Source Folder 라는걸 알려줘야한다. 그래서 위 설정과 같이 resources 태그설정을 해줘야한다.
3. application.properties 설정
본인은 .properties가 아닌 .yml을 사용했으나 똑같은 프로퍼티 설정이므로 참고용으로 보면 됩니다.
profile 설정에 Default Profile을 local로 지정하고 resource 폴더경로까지 설정했으면 resources-local에 있는
application.yml 파일 설정에 따라 어플리케이션이 실행된다.
위와 같이 port를 8081로 지정하고 실행하면 아래와 같이 실행되는걸 볼 수 있다.
* Spring Boot Profile 변경
pom.xml에 설정된 Profile을 변경하기 위해선 프로젝트 마우스 오른쪽 클릭 > Maven > Select Maven Profiles... 을 통해
변경할 수 있다.