[SPRING] 스프링 부트 시작 시간 최소화 [duplicate]
SPRING스프링 부트 시작 시간 최소화 [duplicate]
내 의견으로는 SpringBoot 프로젝트를로드하는 데 오랜 시간이 걸린다. 이것은 아마도 SpringBoot가 여러분을 위해 구성 요소를 구성하기 때문에 발생합니다. 그 중 일부는 필요하지 않을 수도 있습니다. 가장 확실한 것은 클래스 경로에서 불필요한 의존성을 제거하는 것입니다. 그러나 그만큼 충분하지 않습니다.
Spring Boot가 필요로하지 않는 것을 골라 내고 해제 할 수있는 모듈을 찾을 수있는 방법이 있습니까?
일반적으로 SpringBoot 응용 프로그램의 시작 시간을 단축하기 위해 할 수있는 일이 있습니까?
해결법
-
==============================
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.도움이 될 수있는 몇 가지 추가 팁.
도움이 될 수있는 몇 가지 추가 팁.
게다가:
이 기사에서는 로컬 개발 환경에서 @ComponentScan (lazyInit = true)을 사용하도록 권장합니다.
TL, DR
from https://stackoverflow.com/questions/35709234/minimise-spring-boot-startup-time by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 테스트에서 @Test 메소드를 사용하기 전에 데이터베이스를 한 번만 채우는 방법은 무엇입니까? (0) | 2019.01.29 |
---|---|
[SPRING] TaskScheduler, @Scheduled 및 석영 (0) | 2019.01.29 |
[SPRING] Spring에서 트랜잭션을 사용할 때 포스트 커밋 만들기 (0) | 2019.01.29 |
[SPRING] 클래스 패스에있는 jar 파일 안에있는 스프링 애플리케이션 컨텍스트 파일로드하기 (0) | 2019.01.29 |
[SPRING] 주석을 사용하여 Spring MVC 인터셉터를 연결하는 것이 가능한가? (0) | 2019.01.29 |