1.10.9 후보 component의 index 생성

클래스 경로 검색은 매우 빠르지 만 컴파일 시간에 정적 후보 목록을 작성하여 대규모 응용 프로그램의 시작 성능을 향상시킬 수 있습니다. 이 모드에서는 구성 요소 검색의 대상인 모든 모듈에서이 메커니즘을 사용해야합니다.

기존 패키지 @ComponentScan또는 <context:component-scan지시문은 특정 패키지의 후보를 스캔하도록 컨텍스트를 요청할 때 그대로 남아 있어야합니다. ApplicationContext가 이러한 인덱스를 발견하면 클랙스 경로를 검색하는 대신 자동으로 사용 합니다.

index를 생성하려면 구성 요소 검색 지시문의 대상인 구성 요소를 포함하는 각 모듈에 추가 종속성을 추가하십시오. 다음 예는 Maven을 사용하여이를 수행하는 방법을 보여줍니다.

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

Gradle 4.5 이하에서는 다음 예와 같이 compileOnly 구성에서 종속성을 선언해야합니다.

dependencies {
    compileOnly "org.springframework:spring-context-indexer:5.1.5.RELEASE"
}

Gradle 4.6 이상에서는 다음 예제와 같이 annotationProcessor 구성에서 종속성을 선언해야합니다.:

dependencies {
    annotationProcessor "org.springframework:spring-context-indexer:5.1.5.RELEASE"
}

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

IDE에서 이 모드로 작업할 spring-context-indexer는 주석 처리기로 등록해야 후보 구성 요소가 업데이트 될 때 인덱스가 최신인지 확인해야합니다.

META-INF / spring.components가 클래스 경로에서 발견되면 인덱스가 자동으로 활성화됩니다. 인덱스가 일부 라이브러리 (또는 사용 사례)에서 부분적으로 사용 가능하지만 전체 애플리케이션에 대해 빌드 할 수없는 경우 spring.index.ignore를로 설정하여 일반 클래스 경로 배열로 대체 할 수 있습니다 (인덱스가 전혀없는 것처럼). true는 시스템 등록 정보 또는 classpath의 루트에있는 spring.properties 파일에 있습니다.

Last updated