springboot 가 시 작 될 때 설정 파일 application.yml 파일 을 어떻게 불 러 오 는 지 자세히 알 아 보 세 요.

오늘 spring boot 를 시작 할 때 resources 디 렉 터 리 아래 application.yml 파일 을 설정 하 였 으 나 읽 을 수 없습니다.어 쩔 수 없 이 소스 코드 를 보 았 습 니 다.spring boot 가 설정 파일 경 로 를 찾 는 과정 을 정리 하 였 습 니 다.능력 에 한계 가 있 습 니 다.황소 여러분 의 지 도 를 환영 합 니 다!!
spring 로드 프로필 은 listener 모니터 를 통 해 이 루어 집 니 다.springboot 가 시 작 될 때:

용기 시작 이 완료 되면 SpringApplicationEvent 이 벤트 를 방송 합 니 다.SpringApplicationEvent 이 벤트 는 ApplicationEvent 시간 을 계승 합 니 다.코드 는 다음 과 같 습 니 다.


ConfigFileApplicationListener 감청 기 는 SmartApplicationListener 인 터 페 이 스 를 실 현 했 고 SmartApplicationListener 인 터 페 이 스 는 ApplicationListener인 터 페 이 스 를 계 승 했 기 때문에 위 에서 방 송 된 SpringApplicationEvent 이 벤트 를 감청 할 수 있 습 니 다.클래스 의 계승 도 는 다음 과 같 습 니 다.

SmartApplication Listener 는 Application Listener 에서 계승 합 니 다.

ConfigFileApplication Listener 에서 이 벤트 를 감청 하 는 방법:

post Process Environment 방법 은 application.yml 설정 파일 의 입 구 를 찾 는 방법 입 니 다.

load 방법 에서 설정 파일 을 찾 는 과정 입 니 다:

기본적으로 location 을 먼저 읽 고 설정 파일 의 이름 인'application'을 마지막 으로 파일 형식 인'properties'나'yml'을 읽 습 니 다.
localtion 은 여러 가지 가 있 습 니 다.스스로 debug 할 수 있 습 니 다.file:./와 file:./config 와 classpath 등 디 렉 터 리 가 있 습 니 다.
파일 형식 은 기본적으로 네 가지 가 있 습 니 다:properties,xml,yml,yaml
마지막 으로 찾 은 구체 적 인 경로:location+name+"-"+profile+"."+ext

맞 춤 형 경로 에 따라 프로필 을 찾 습 니 다.일반 프로필 은 classpath 디 렉 터 리 아래 에 놓 여 있 습 니 다.classpath 디 렉 터 리 에 있 는 프로필 을 읽 을 때 프로그램 은 프로필 을 불 러 옵 니 다.


프로필 을 불 러 올 때 프로그램 은 프로필 의 spring.profiles.active 속성 을 읽 고 어떤 환경의 프로필 을 불 러 올 지 확인 합 니 다(dev 를 불 러 옵 니 다).

그리고 읽 은 프로필 의 속성 을 프로필 대기 열 에 불 러 와 프로필 을 다시 불 러 옵 니 다.코드 는 다음 과 같 습 니 다.따라서 모든 항목 에 기본 프로필 이 있어 야 합 니 다.예 를 들 어 application.yml 과 같은 기본 프로필 이 있어 야 합 니 다.그리고 이 프로필 에 active 속성 이 있어 야 합 니 다.

프로그램 은 먼저 이 속성 을 가 져 와 prolees 속성 에 넣 고 application-dev.yml 과 같은 설정 파일 을 다시 불 러 옵 니 다.프로그램 은 다음 과 같 습 니 다.


주:이 글 은 프로필 을 찾 을 수 없 는 것 을 해결 하기 위해 쓴 것 입 니 다.문 제 를 해결 하기 위해 쓴 것 입 니 다.주로 프로필 경 로 를 찾 는 과정 을 분석 하고 프로필 을 구체 적 으로 해석 하 는 과정 입 니 다.독 자 는 소스 코드 를 자세히 볼 수 있 습 니 다.마지막 으로 저도 프로필 이 왜 찾 을 수 없 는 지 이 유 를 찾 았 습 니 다.주로 아이디어 컴 파일 때 문 입 니 다.classpath 경로 아래 에 application.yml 파일 이 없습니다.프로필 을 classpath 디 렉 터 리 에 복사 하면 문제 가 해 결 됩 니 다!
spring boot 가 시 작 될 때 설정 파일 application.yml 파일 을 어떻게 불 러 오 는 지 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 spring boot 가 애플 리 케 이 션 을 불 러 옵 니 다.yml 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기