복붙노트

[SPRING] 스프링 부트 시작 시간 최소화 [duplicate]

SPRING

스프링 부트 시작 시간 최소화 [duplicate]

내 의견으로는 SpringBoot 프로젝트를로드하는 데 오랜 시간이 걸린다. 이것은 아마도 SpringBoot가 여러분을 위해 구성 요소를 구성하기 때문에 발생합니다. 그 중 일부는 필요하지 않을 수도 있습니다. 가장 확실한 것은 클래스 경로에서 불필요한 의존성을 제거하는 것입니다. 그러나 그만큼 충분하지 않습니다.

Spring Boot가 필요로하지 않는 것을 골라 내고 해제 할 수있는 모듈을 찾을 수있는 방법이 있습니까?

일반적으로 SpringBoot 응용 프로그램의 시작 시간을 단축하기 위해 할 수있는 일이 있습니까?

해결법

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

    1.Spring MVC, JMS, Atomikos 트랜잭션, Hibernate, JMX 지원 및 임베디드 Tomcat을 통해 편안한 웹 서비스를 사용하여 대규모 (800,000 개 이상의 코드 라인) 애플리케이션을 실행한다고 말할 수 있습니다. 이 모든 작업을 통해 애플리케이션은 약 19 초 만에 내 로컬 데스크톱에서 시작됩니다.

    Spring MVC, JMS, Atomikos 트랜잭션, Hibernate, JMX 지원 및 임베디드 Tomcat을 통해 편안한 웹 서비스를 사용하여 대규모 (800,000 개 이상의 코드 라인) 애플리케이션을 실행한다고 말할 수 있습니다. 이 모든 작업을 통해 애플리케이션은 약 19 초 만에 내 로컬 데스크톱에서 시작됩니다.

    스프링 부트는 사용하지 않는 모듈을 설정하지 않으려 고 노력합니다. 그러나 의도하지 않은 추가 종속성 및 구성을 쉽게 도입 할 수 있습니다.

    Spring Boot는 컨피규레이션 패러다임에 대한 관례를 따르고 클래스 경로에 라이브러리를 배치함으로써 Spring 부트가 라이브러리를 사용하도록 모듈을 구성하도록 만들 수 있음을 기억하십시오. 또한 @RestController로 클래스에 주석을 달아주는 것만 큼 간단한 일을하면 Spring Boot가 전체 Spring MVC 스택을 자동으로 구성하도록 트리거한다.

    명령 줄에서 응용 프로그램을 시작할 때 --debug를 지정하는 것만으로 디버깅 로깅을 활성화 할 수 있습니다. 또한 application.properties에서 debug = true를 지정할 수도 있습니다.

    또한 application.properties의 로깅 수준을 다음과 같이 간단하게 설정할 수 있습니다.

    logging.level.org.springframework.web: DEBUG
    logging.level.org.hibernate: ERROR
    

    원하지 않는 자동 구성 모듈을 감지하면 모듈을 비활성화 할 수 있습니다. 이에 대한 문서는 http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-disabling-specific-auto-configuration에서 찾을 수 있습니다.

    예는 다음과 같습니다.

    @Configuration
    @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
    public class MyConfiguration {
    }
    
  2. ==============================

    2.도움이 될 수있는 몇 가지 추가 팁.

    도움이 될 수있는 몇 가지 추가 팁.

    게다가:

    이 기사에서는 로컬 개발 환경에서 @ComponentScan (lazyInit = true)을 사용하도록 권장합니다.

    TL, DR

  3. from https://stackoverflow.com/questions/35709234/minimise-spring-boot-startup-time by cc-by-sa and MIT license