Spring Boot 애플리케이션이 있습니다. 나는 많은 의존성을 추가했고 (불행히도 그것들이 모두 필요해 보인다) 시작 시간이 상당히 증가했다. 하는 것만으로도 SpringApplication.run(source, args)
10 초가 걸립니다.
그것이 "사용 된"것에 비하면 그다지 많지 않을 수도 있지만, 대부분 개발 흐름을 깨뜨리기 때문에 그렇게 많이 걸리는 것이 불행합니다. 이 시점에서 애플리케이션 자체는 다소 작기 때문에 대부분의 시간이 앱 클래스 자체가 아니라 추가 된 종속성과 관련이 있다고 가정합니다.
문제가 클래스 경로 스캔이라고 가정하지만 다음 방법을 잘 모르겠습니다.
- 문제인지 확인 (예 : Spring Boot를 "디버그"하는 방법)
- 그것이 정말로 원인이라면 어떻게 제한 할 수 있습니까? 예를 들어 일부 종속성 또는 패키지에 Spring이 스캔해야하는 내용이 포함되어 있지 않다는 것을 알고 있다면이를 제한하는 방법이 있습니까?
나는 시작하는 동안 병렬 빈 초기화를 갖도록 Spring을 강화 하면 속도가 빨라질 것이라고 가정 하지만 그 향상 요청은 2011 년부터 진행되지 않고 열려 있습니다. Investigate Tomcat JarScanning 속도 향상 과 같은 Spring Boot 자체의 다른 노력이 있지만 Tomcat에 국한되어 포기되었습니다.
이 기사 :
통합 테스트를 겨냥했지만을 사용 lazy-init=true
하는 것이 좋지만 Java 구성을 사용하여 Spring Boot의 모든 Bean에 이것을 적용하는 방법을 모르겠습니다-여기에 포인터가 있습니까?
(기타) 제안을 환영합니다.
@ComponentScan
해당 패키지 도 스캔됩니다. 또 다른 한 가지는 일반적으로 로깅이 느리고 매우 느리기 때문에 디버그 또는 추적 로깅을 활성화하지 않았는지 확인하는 것입니다.