programing

application.dev.properties 파일을 로드하지 않는 Springboot

magicmemo 2023. 7. 15. 10:01
반응형

application.dev.properties 파일을 로드하지 않는 Springboot

프로젝트에서 환경별 속성 파일을 사용하려고 합니다.예를 들어 개발에 실행하는 경우 application.dev.properties를 사용해야 하며, 프로덕션의 경우 application.prod.properties 등을 사용해야 합니다.

리소스 폴더에 아래 두 개의 파일이 있습니다.

  1. application.properties(생산용)
  2. application.dev.properties(개발용)

저는 각 파일에 아래와 같은 속성이 하나씩 있습니다.

제품용

server.database.host=192.168.1.1

개발용

server.database.host=192.168.12.125 

그리고 아래와 같은 수업이 있습니다.

 public class DataSource {

     @Value(${server.database.host})
     String host;

dev like에 대한 적절한 인수를 제공하더라도 위의 코드는 항상 prod 설정(application.properties) 파일을 가져옵니다.--spring.profiles.active=dev

아래는 dev properties 파일을 로드하기 위해 사용하는 명령입니다.

java -jar myjar.jar --spring.profiles.active=dev

또한 활성 프로파일이 dev이지만 항상 proddb에 연결된다는 것을 출력합니다.

몇 가지 문제를 발견했습니다.

  1. @Value속성 이름은 다음과 같아야 합니다.String맘에 들다@Value("${server.database.host}")
  2. 프로파일 관련 속성 파일은 다음에 와야 합니다.application-{profile}.properties형식(예:application-dev.properties
  3. 프로파일 전달 시도:-D맘에 들다java -Dspring.profiles.active=dev -jar app.jar

실행 구성에서 vm 인수를 추가해 보십시오.

-Dspring.profiles.active=dev

다음과 같이 실행할 프로필을 지정해야 합니다.

mvn spring-boot:run -Dspring-boot.run.profiles=foo,bar

설명서도 참조하십시오. https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html

Eclipse 또는 STS에서 실행 중인 경우 다음 단계를 사용합니다.

  1. 프로젝트 -> 다른 이름으로 실행 -> 구성 실행을 마우스 오른쪽 버튼으로 클릭합니다.

  2. 새 창에서 왼쪽의 스프링 부팅 애플리케이션을 선택하고 오른쪽에 세부 정보를 추가한 후 프로파일 드롭다운에서 dev를 선택합니다.enter image description here

  3. apply를 클릭하고 실행합니다.

언급URL : https://stackoverflow.com/questions/38042035/springboot-not-loading-application-dev-properties-file

반응형