[SPRING] 스캔으로 인한 부두 시동 지연
SPRING스캔으로 인한 부두 시동 지연
컨텍스트 및 설정 정보 :
문제 설명 jetty 9를 시작하는 것은 web.xml을 사용하는 대신 Spring의 JavaConfig를 사용하여 Spring 컨텍스트를 부팅하는 프로젝트에서 매우 느립니다. 부두는 사려 깊은 시간 동안 아무 것도하지 않는 것 같습니다. 이 줄 다음에 발생합니다.
정보 : oejs.Server : main : jetty-9.2.3.v20140905
Jetty는 결국 시작되지만 일반적인 Tomcat 7 배포판에 비해 시작하는 데 오랜 시간이 걸립니다.
추가 리소스
public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
//implementation
}
해결법
-
==============================
1.이것은 Jetty 9가 웹 컨텍스트를 시작하기 위해 WEB-INF 폴더에있는 모든 JAR을 주석으로 검색하기 때문입니다. 이 문제에 대한 해결책을 찾으려한다면 이미 그 사실을 발견했을 것입니다. 나는 여러 가지 해답을 시도했지만 그 중 올바른 해결책을 찾지 못했습니다.
이것은 Jetty 9가 웹 컨텍스트를 시작하기 위해 WEB-INF 폴더에있는 모든 JAR을 주석으로 검색하기 때문입니다. 이 문제에 대한 해결책을 찾으려한다면 이미 그 사실을 발견했을 것입니다. 나는 여러 가지 해답을 시도했지만 그 중 올바른 해결책을 찾지 못했습니다.
가능한 한 그러한 스캐닝을 제거하기 위해 우리는 어떤 소스를 스캔 할 것인지, 어떤 소스를 스캔하지 않을 것인지를 Jetty에게 알려주는 패턴을 정의 할 수 있습니다. 이것은 maven의 일부 설정을 설정하거나 jetty-context.xml에 속성을 설정하여 수행됩니다. (만약 당신이 maven plugin을 사용하고 있다면, pty.xml에서도 Jetty의 jetty-context.xml을 설정해야합니다)
나에게 도움이되지 않은 다른 솔루션 (시작 시간이 증가하지 않거나 전혀 시작되지 않음)
부두 8.1.2 기동 지연 메이븐 플러그인으로 jetty8 시작하는 데 오래 걸립니다
기타
올바른 해결책은 또한 이와 같은 jetty-context.xml을 사용하지만 다른 패턴을 사용하여 수행됩니다. Spring 애플리케이션에서, 우리는 Spring jar를 스캔 할 필요가있다. 많은 의존성을 가지고 있다면, 이것만으로도 큰 도움이 될 것이다. 대신 스프링 웹 항아리 만 스캔하면 더 좋습니다. 스프링 보안 (Spring Security)이 있다면, 그 항아리를 포함시켜야 할 수도 있습니다.
이와 같이 최대 속도 향상을 준 패턴이 다음과 같이 표시됩니다.
<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd"> <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Call name="setAttribute"> <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg> <Arg>.*/spring-security[^/]*\.jar$|.*/spring-web[^/]*\.jar$|.*/classes/.*</Arg> </Call> </Configure>
우리는 WEB-INF의 classes 폴더에없는 것을 제외하고 주어진 정규 표현 패턴을 포함하지 않는 모든 jar 파일을 제외시킵니다.
희망이 사람을 돕는다!
from https://stackoverflow.com/questions/26927939/jetty-startup-delay-due-to-scanning by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 보안 permitAll은 토큰이 유효하지 않은 경우 승인 헤더에서 전달 된 토큰을 고려하고 401을 반환합니다. (0) | 2019.02.17 |
---|---|
[SPRING] Spring - Autowire java.lang.NoClassDefFoundError (0) | 2019.02.17 |
[SPRING] 스프링과 같은 안드로이드 애플리케이션 프레임 워크가 있습니까? (0) | 2019.02.17 |
[SPRING] 각도 js spring mvc를 사용하여 멀티 파트 파일을 업로드하는 방법 (0) | 2019.02.17 |
[SPRING] Spring @ExceptionHandler에서 @ ResponseStatus-annotated 예외로 예외를 다시 발생시키는 방법? (0) | 2019.02.17 |