Spring boot 2.4 버전이 릴리즈 되면서 application.properties, application.yml 파일 로드 방식에 변화가 있었다.
Spring boot는 어플리케이션이 실행될 때 자동으로 application.properties 또는 application.yml을 찾는다.
application.properties와 application.yml을 동시에 사용하지 않도록 주의하자.
같이 존재할 경우 properties가 항상 나중에 로드되어 yaml에 정의한 profile 설정을 덮어 쓸 수 있기 때문이다.
Spring boot 2.4 이전 버전의 profile 방식과 2.4 이후 profile 작성 방법에 대해서 살펴보자.
Spring boot 2.4 이전 profile
먼저 Spring boot 2.4 이전 profile 설정 방법을 알아보자.
참고로 YAML은 하나의 profile에 (---) 구분자로 구분을 하면, 논리적으로 구분이 되어 파일을 나누어서 사용하는 효과를 볼 수 있다.
application.yml
또한, 여러 profile을 포함시키기 위해 include를 이용하여 아래와 같이 설정 할 수 있었다.
application.yml
Spring boot 2.4 이후 profile
아래 사진과 같이 Spring boot 2.4부터는 spring.profiles은 deprecated 되었다.
이전에 spring.profiles로 사용하는 것이 아닌 spring.config.active.on-profile로 더 직관적으로 알아 볼 수 있도록 변경되었다.
application.yml
또한, 아래와 같이 spring.profiles.group 을 이용해서 여러 profile들을 한꺼번에 그룹지어 하나의 profile로 만들 수 있다.
include 대신 group을 사용한다.
spring.profiles.active=prod로 실행하게 되면 prod와 common 두개의 profile들을 한번에 실행할 수 있다.
application.yml
인텔리제이에서 profile 값을 주기 위해서는 아래와 같이 줄 수 있고 자바로 실행할 때 VM arguments로 java -jar -Dspring.profiles.active=local app.jar 로 줄 수도 있다.
실제로 application을 실행할 때 spring.profiles.active 설정을 주어 어떠한 profile를 활성화할 것인지 정해주어야 한다.
해당 설정이 없을 시에는 위에서 정해준 default 값으로 profile이 실행된다