앞서 언급한 것처럼 application.properties 파일은 구성되어 있지 않습니다. 이제 main/resources 폴더에 새로운 application.properties 파일을 생성하고 다음과 같은 구성을 작성합니다
그런 다음 프로젝트를 시작합니다.
자, 위의 시작 결과 스크린샷을 보면 "9090" 포트에서 서비스가 시작되는 것을 볼 수 있습니다. 그런 다음 이 디렉터리에 application.yml 파일을 구성하면 시작 결과는 다음과 같습니다. 서비스가 여전히 포트 "9090"에서 시작되는 것을 확인할 수 있습니다. 이러한 이유로 우리는 다음과 같은 결론을 내립니다. 동일한 폴더에 두 개의 파일 application.properties와 application.yml이 있는 경우 application.properties 파일이 application.yml 파일을 덮어쓰고 application.properties 파일이 적용됩니다.
yml 파일이란 무엇인가요?
Yml은 데이터를 직렬화하는 매우 직관적인 방법인 YAML(YAML Aint Markup Language)로 작성된 파일 형식입니다. 이는 XML 및 속성 파일과 유사한 매우 단순한 새로운 파일 형식입니다. 2. application.properties/.yml 파일이 다른 경로에 있을 수 있나요?이 제목을 본 친구들은 분명히 'application.properties가 다른 경로에 있을 수 있나요?'라고 물을 것입니다. main/resources 폴더에 application.properties/.yml을 넣습니다. 프로젝트가 실행되면 이 폴더의 파일이 클래스 폴더에 복사되므로 이 경로를 classpath라고도 합니다.
springboot 소스 코드에서 "application.properties"를 검색하고 ConfigFileApplicationListener와 같은 클래스를 찾으세요. 이 클래스의 주석에 다음 단락이 있습니다.
* {@link EnvironmentPostProcessor} that configures the context environment by loading * properties from well known file locations. By default properties will be loaded from * 'application.properties' and/or 'application.yml' files in the following locations: * <ul> * <li>file:./config/</li> * <li>file:./config/{@literal *}/</li> * <li>file:./</li> * <li>classpath:config/</li> * <li>classpath:</li> * </ul>
대략 "EnvironmentPostProcessor가 잘 알려진 파일 경로에서 속성을 로드합니다. 컨텍스트 환경을 구성합니다. 기본 속성은 application.properties/application.yml 파일에서 제공됩니다. 이러한 파일은 다음 경로 ",
file"의 루트 폴더(프로젝트 폴더) 아래 config 디렉터리
file:./
classpath:config/ 루트 파일 폴더(프로젝트 폴더) 하위 classpath 하위 config ) /
classpath: 클래스 경로 아래
좋아, 우리는 이미 application.properties/application.yml 파일이 위 위치에서 로드된다는 것을 알고 있으며 우리가 구성한 기본/리소스는 실제로 위 클래스 경로입니다. 이러한 경로에도 순서가 있습니까? 계속해서 ConfigFileApplicationListener 클래스를 살펴보고 아래와 같은 속성을 확인하세요.
// Note the order is from least to most specific (last one wins) private static final String DEFAULT_SEARCH_LOCATIONS = "classpath:/,classpath:/config/,file:./,file:./config/*/,file:./config/";
이 DEFAULT_SEARCH_LOCATIONS가 위의 값을 지정한다는 것을 알 수 있지만 위의 설명은 매우 흥미롭습니다. 잘 번역되지 않았는데, 예문을 통해 확인해 보겠습니다. 이제 application.properties 및 application.yml의 우선 순위를 알았으므로 application.properties 파일을 사용하여 resources/config(실행 경로: classpath:/config/) 아래에 application.properties가 있는지 확인할 수 있습니다.
현재 어떤 포트가 사용되고 있는지 살펴보세요.
은 9092를 사용하고 있습니다. 이는 resources/config가 resources, 즉 classpath:/config/>classpath:/보다 우선순위가 높다는 것을 의미합니다. file:/
을 살펴보겠습니다. 프로젝트의 루트 경로 아래에 새 application.properties 파일을 만들었습니다. 시작 server.port는 9093입니다. 서비스가 사용하는 포트를 살펴보겠습니다. 9093. , 우선순위는 file:/>classpath:/config/>classpath:/입니다. 이제 프로젝트 경로에 config/my/ 경로를 추가하고 application.properties 파일을 추가합니다.
테스트 결과는 다음과 같습니다.
서비스는 포트 "9094"에서 시작되며, 이는 우선순위가 file:./config/*/>file:./>classpath:/>classpath:/config/임을 나타내며 마지막 확인 포인트는 다음과 같습니다. file:/ config, 이것은 검증할 필요가 없으며 가장 높은 우선순위를 가져야 한다고 생각합니다. 따라서 우선순위는 높은 것부터 낮은 것 순입니다: file:./config/ > file:./ > classpath:/ > classpath:/config/, 프로젝트 루트 경로 아래 config/*/ 프로젝트 루트 경로 > classpath:/config>classpath:/
위 내용은 springboot의 기본 로딩 경로는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!