하된
254
2019-07-11 16:20:39
6
179

SpringBoot 에서 application.yml 질문드립니다!


안녕하세요


SpringBoot를 공부하던 중 main과 test에서 쓰이는 yml파일을 다르게 적용하고 싶었습니다.

main 환경에서의 application.yml 과는 다른 test 환경에서의 application.yml 을 test/resources/application.yml

로 생성하고 코드를 실행하였지만 main에 있는 yml파일을 참조하고 있었습니다.


구글링을 하고 찾아보니 test/resources/ 폴더에 application.yml 파일이 없으면 main에 있는 것을 참조한다는 글을 보았습니다.

하지만 저는 test/resources/ 폴더에 생성해 둔 상태인데 main의 것을 사용하고 있습니다 ..

구글링을 통해 다양한 방법을 시도해 봤고, @ActiveProfiles("application") 을 사용하면 

test폴더에 있는것을 참조하지만 

String profile =this.restTemplate.getForObject("/profile",String.class);

이렇게 profile을 확인하면 application이 출력됩니다..

제가 기대한 출력은 local 입니다!! 


혹시 main과 test에서 다른 yml 또는 properties 파일을 적용하는 방법을 아신다면 조언 부탁드립니다!!

감사합니다!

0
0
  • 답변 6

  • 오키죽돌이
    237
    2019-07-11 16:36:58 작성 2019-07-11 16:38:03 수정됨

    application-main.yml

    application-test.yml


    파일을 분리하여 만드시고, 해당 파일마다 환경 설정을 바꾸셔서 넣으시면 되구요

    실행하시는 IDE에 VM Argument옵션에 -Dspring.profiles.active=test 또는 main

    설정으로 원하시는 설정파일로 실행이 가능 합니다.

    0
  • 오키죽돌이
    237
    2019-07-11 16:38:59

    추가로 application.yml 파일에 이렇게 넣어도 되긴 합니다.

    spring:

      profiles:

        active: test

    0
  • 하된
    254
    2019-07-11 16:54:36

    오키죽돌이 

    답변 정말 감사드립니다!!!

    application.yml 에서 application-main.yml로 이름을 바꾸고 실행하니 test환경이 아닌

    Spring boot app으로 실행 했을때 yml 파일을 인식하지 못하네요 ㅜ ㅜ

    VM Argument 옵션을 설정하지 않고 분리하는 방법이 있을까요??

    번거롭게 질문드려 죄송합니다

    0
  • 오키죽돌이
    237
    2019-07-11 17:00:19

    application.yml은 스프링 부트가 가장 기본 파일입니다.

    이놈은 그냥 두세요!!

    그리고,

    아래처럼 대부분 분리해서 많이 사용합니다.


    application-local.yml -- 로컬 PC

    application-dev.yml -- 개발서버

    application-uat.yml -- UAT(Staging)

    application-live.yml -- Live(운영)



    그리고 이러한 설정도 요즘은 spring cloud config? 라고 해서 git에 설정파일을 올려두고 그걸 가지고 설정되도록 하는거 같아요...

    직접 해보지는 않아서.... 여기까지만....


    0
  • 하된
    254
    2019-07-11 17:07:55

    오키죽돌이

    무슨 뜻인지 알 것 같습니다!!

    자세히 알려주셔서 정말 너무 감사드립니다!!

    0
  • 하된
    254
    2019-07-25 21:37:07

    test 댓글입니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.