복붙노트

[SPRING] 봄 컴포넌트 주석 컴파일 시간 스캔

SPRING

봄 컴포넌트 주석 컴파일 시간 스캔

내 믿음은 스프링 부트 스트랩

지시 때문에

<context:component-scan base-package=" ..... " />

실행 중 앱 시작시 (또는 지시가있을 때마다) 구성 요소 검사를 수행합니다.

빌드 / 컴파일하는 동안 주석 된 스프링 구성 요소의 정적 정적 스캔을 수행하여 부트 스트랩 구성 요소 검사가 수행되지 않도록 컴파일러 (아마도 Maven 빌드 플러그인)에게 구성 요소 주석을 사용하지 않고도 수행하도록 지시하는 방법이 있습니까? ?

시작로드 및 대기 시간을 줄이는 방법.

해결법

  1. ==============================

    1.Spring 5 대규모 응용 프로그램의 시작 성능을 향상시키는 새로운 기능이 추가되었습니다.

    Spring 5 대규모 응용 프로그램의 시작 성능을 향상시키는 새로운 기능이 추가되었습니다.

    컴파일 할 때 구성 요소 후보 목록을 작성합니다.

    이 모드에서는 ApplicationContext가 이러한 색인을 감지 할 때 클래스 패스를 검사하는 대신 자동으로 사용하므로 응용 프로그램의 모든 모듈은이 메커니즘을 사용해야합니다.

    색인을 생성하려면 각 모듈에 아래의 의존성을 추가하기 만하면됩니다.

    메이븐 :

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-indexer</artifactId>
            <version>5.0.3.RELEASE</version>
            <optional>true</optional>
        </dependency>
    </dependencies>
    

    요람

    dependencies {
        compileOnly("org.springframework:spring-context-indexer:5.0.3.RELEASE")
    }
    

    이 프로세스는 병에 포함될 META-INF / spring.components 파일을 생성합니다.

    참고 문헌 : 1.10.9. 후보 구성 요소의 색인 생성

  2. ==============================

    2.Spring 5는 컴파일 타임에 후보 컴포넌트의 인덱스를 생성하는 옵션을 추가했다. 색인이 발견되면 색인 만 사용되며 전체 클래스 경로 스캔은 생략됩니다.

    Spring 5는 컴파일 타임에 후보 컴포넌트의 인덱스를 생성하는 옵션을 추가했다. 색인이 발견되면 색인 만 사용되며 전체 클래스 경로 스캔은 생략됩니다.

  3. from https://stackoverflow.com/questions/25981158/spring-component-annotation-compile-time-scan by cc-by-sa and MIT license