> Java > java지도 시간 > Springboot-yaml 구성 및 자동 구성 원리 분석

Springboot-yaml 구성 및 자동 구성 원리 분석

王林
풀어 주다: 2023-05-13 15:25:06
앞으로
1093명이 탐색했습니다.

버전 중재 센터

spring 종속성은 일반적으로 사용되는 많은 jar 패키지에 의존하는 데 도움이 됩니다. 이러한 jar 패키지를 가져오는 데 버전 번호가 필요하지 않습니다.
예:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
</dependency>
로그인 후 복사

자동 구성 원칙

구성 파일 구성 디버그: true는 콘솔 구성 보고서는 특정 클래스에 표시된 모든 시작된 자동 구성 및 시작되지 않은 자동 구성 클래스를 인쇄할 수 있으며, 이는 이 클래스가 springboot의 기본 시작 클래스임을 나타냅니다. 따라서 많은 구성을 수동으로 수행할 필요가 없습니다

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
로그인 후 복사

@AutoConfigurationPackage
기본 구성 클래스가 있는 패키지 아래의 모든 구성 요소가 스프링 컨테이너로 스캔됩니다.

@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
로그인 후 복사

AutoConfigurationImportSelector

구성 요소를 컨테이너로 가져옵니다. @import:를 통해 이 구성 요소는 mysql, web 등과 같은 모든 자동 구성 클래스를 로드합니다. 마지막으로 META-INF/spring.factories로 이동하여 모든 자동 구성 클래스를 찾아 컨테이너에 로드합니다. 자동 구성 클래스는 우리가 Spring에서 수행했던 작업입니다.


yaml 구문

Literals

문자열은 기본적으로 인용할 필요가 없습니다. 특수한 경우에는 작은따옴표가 이스케이프됩니다. 예를 들어 n의 출력은 여전히 ​​n입니다.

큰따옴표 특수 문자는 이스케이프되지 않습니다. 예를 들어 n의 출력은 공백입니다.

작은따옴표를 추가하지 않으면 이스케이프됩니다.

느슨하게 바인딩됩니다.

속성은 밑줄 또는 밑줄_로 작성됩니다. 마찬가지로 엔터티 클래스로의 변환은 ConfigurationProperties에서만 사용할 수 있으며 사용할 수 없습니다. @Value 주석에서

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import({Registrar.class})
public @interface AutoConfigurationPackage {
로그인 후 복사
주석을 사용하여 yaml 구성의 사용자 정의 구성에 프롬프트

가 있고 @ PropertySource 주석이 함께 사용됩니다.

@PropertySource 주석은 다른 지정된 파일을 로드할 수 있습니다

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
로그인 후 복사
와 함께 사용됩니다. @ImportResource

스프링 구성 파일을 가져와서 적용합니다

@PropertySource(value = "classpath:user.properties")
로그인 후 복사

구성 파일 자리 표시자

${random.int } yaml에서 제공하는 임의의 숫자 사용

${server.port} 이전에 구성한 값 사용

$ {server.name: hello} 값이 없으면 기본값을 사용하세요

profile

활성화 및 다른 구성 환경 지정



명령줄 활성화에 -spring.profiles.active=dev

가상 머신 매개변수 활성화 추가 가능 -Dspring.profiles.active=dev

구성 파일 로드 순서

파일: 프로젝트 루트 경로 디렉터리 아래 ./config/ config
파일: ./ 프로젝트 루트 디렉터리

classpath: config/
classpath: /

All 파일은 위에서 아래로 높은 우선순위에서 낮은 순으로 로드되며, 높은 파일은 낮은 파일을 덮어씁니다. 다른 구성은 효과적이고 보완적입니다.
프로젝트를 배포할 때 –spring.config.location을 통해 구성 파일 위치를 변경할 수도 있습니다. . 프로젝트에 로드된 구성 파일은 여기에 지정된 구성 파일을 보완합니다.

위 내용은 Springboot-yaml 구성 및 자동 구성 원리 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿