복붙노트

[SPRING] Spring 구성 요소 스캔의 성능은 스캔 한 패키지의 크기에 좌우됩니까?

SPRING

Spring 구성 요소 스캔의 성능은 스캔 한 패키지의 크기에 좌우됩니까?

우리의 응용 프로그램에서 구성 요소 검사와 관련된 성능 문제가 발생했습니다. 상당히 느리고 성능은 스캔 한 패키지의 클래스 수에 의존하지 않습니다.

우리의 sping 설정 파일에서 다음과 같은 각 라인 :

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

우리 응용 프로그램의 시작 시간을 2 분 늘립니다. 스캔 한 패키지의 클래스 수는 중요하지 않습니다. 10 및 1k 클래스 패키지 모두에서 동일한 지연이 발생합니다.

구성 요소 스캔의 성능이 스캔 한 패키지의 크기에 의존하지 않는 이유는 무엇입니까?

우리는 스프링 빈 생성을 위해 혼합 된 접근 방식을 사용하고 있습니다. 우리는 xml 정의와 구성 요소 스캔을 모두 사용합니다. 그러한 행동의 원인이 될 수 있습니까?

해결법

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

    1.Spring이하는 일은 컴포넌트 스캔에서 제공하는 패키지의 모든 클래스를 통과하는 것입니다. 클래스에 컴포넌트, 저장소 또는 서비스가 있으면 클래스에 컨텍스트를 등록합니다. 따라서 수업의 수는 중요합니다. 주석이 달린 클래스가 포함 된 패키지 만 검사해야합니다 (주석이 달린 클래스를 검색하는데도 시간이 걸립니다). 또한 하나의 구성 요소 스캔 태그 만 사용하고 모든 패키지를 나열 할 수 있습니다. xml과 구성 요소 검사를 모두 사용하면 복제하지 않는 한 문제가되지 않습니다.

    Spring이하는 일은 컴포넌트 스캔에서 제공하는 패키지의 모든 클래스를 통과하는 것입니다. 클래스에 컴포넌트, 저장소 또는 서비스가 있으면 클래스에 컨텍스트를 등록합니다. 따라서 수업의 수는 중요합니다. 주석이 달린 클래스가 포함 된 패키지 만 검사해야합니다 (주석이 달린 클래스를 검색하는데도 시간이 걸립니다). 또한 하나의 구성 요소 스캔 태그 만 사용하고 모든 패키지를 나열 할 수 있습니다. xml과 구성 요소 검사를 모두 사용하면 복제하지 않는 한 문제가되지 않습니다.

  2. from https://stackoverflow.com/questions/19314922/does-performance-of-spring-component-scan-depend-on-the-size-of-the-scanned-pack by cc-by-sa and MIT license