해결된 질문
작성
·
209
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
예
[질문 내용]
스프링에서 datasource 빈을 생성할 때 application.yml 파일의 url, username .. 속성들을 매핑해 사용하는데, 이런 매핑역시 Environment 를 활용해서 내부적으로 매핑되는걸까요?
만약 그렇다면 우선순위가 높은 자바시스템속성으로 url 정보를 주면 yml 파일보다 자바시스템속성이 먼저 읽히게 되는게 맞을까요?
답변 1
1
안녕하세요. jaden님, 공식 서포터즈 코즈위버입니다.
이해하신 내용이 맞습니다. Environment 객체는 application.properties 에 작성한 값을 사용합니다. 우선순위 부분은 찾아보니 다음과 같은 순서를 따른다고 하네요.
@TestPropertySource
어노테이션에 정의된 속성
@SpringBootTest#properties
어노테이션에 정의된 속성
커맨드 라인 인수 (예: --server.port=8080
)
SPRING_APPLICATION_JSON
환경 변수에 정의된 속성
자바 시스템 속성 (System.getProperties()
로 가져올 수 있는 속성)
OS 환경 변수
@PropertySource
어노테이션에 정의된 속성
ServletConfig init 매개변수
ServletContext init 매개변수
application.properties
나 application.yml
파일에 정의된 속성
감사합니다.