새소식

반응형
Java/Spring

Spring Boot resources Directory Profile 마다 환경 분리

  • -
반응형

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... 을 통해

변경할 수 있다.

반응형

'Java > Spring' 카테고리의 다른 글

생성자 주입, 필드 주입(@Autowired), 수정자 주입  (0) 2022.05.18
Thymeleaf Java에서 넘어온 객체 값 Javascript로 전송  (0) 2022.05.18
StringUtils  (0) 2022.05.13
RequestContextHolder  (0) 2022.05.11
@configurationProperties  (0) 2022.05.03
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.