복붙노트

[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. ==============================

    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 파일을 제외시킵니다.

    희망이 사람을 돕는다!

  2. from https://stackoverflow.com/questions/26927939/jetty-startup-delay-due-to-scanning by cc-by-sa and MIT license