스프링 부트 시작 시간 최소화
Spring Boot 프로젝트를 로드하는 데 시간이 오래 걸린다고 생각합니다.이 문제는 Spring Boot가 컴포넌트를 구성하기 때문에 발생할 수 있으며, 그 중 일부는 필요하지 않을 수도 있습니다.가장 분명한 것은 불필요한 종속성을 클래스 경로에서 제거하는 것입니다.하지만 그것만으로는 충분하지 않다.
Spring Boot에서 어떤 모듈을 구성하여 불필요한 모듈을 선택하여 비활성화할 수 있습니까?
일반적으로 Spring Boot 어플리케이션의 기동 시간을 단축하기 위해 할 수 있는 다른 방법이 있습니까?
Spring MVC, JMS, Atomicos 트랜잭션, Hibernate, JMX 지원 및 Embedded Tomcat을 통해 Restful Webservices를 사용하여 대규모(800,000줄 이상의 코드) 애플리케이션을 실행하고 있음을 알 수 있습니다.그 때문에, 애플리케이션은 약 19초 후에 로컬 데스크탑에서 기동합니다.
스프링 부트는 사용하지 않는 모듈을 설정하지 않도록 합니다.그러나 의도하지 않은 추가 종속성 및 구성을 쉽게 도입할 수 있습니다.
Spring Boot은 Configuration에 대한 표기법을 따르고 있으며 클래스 경로에 라이브러리를 배치하는 것만으로 Spring Boot에서 라이브러리를 사용하도록 모듈을 설정하려고 할 수 있습니다.또한 @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-boot-specific-auto-configuration에서 찾을 수 있습니다.
예를 들어 다음과 같습니다.
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
도움이 될 수 있는 몇 가지 추가 팁이 있습니다.
- 개발에 Hotspot 대신 OpenJ9 사용
- 휴지 상태를 사용하는 경우,
hibernate.ddl-auto=none
update
- vmargs 설정
- OpenJ9을 사용하는 경우 - vmargs를 다음으로 설정합니다.
- Hotspot을 사용하는 경우 - 그래들 빌드 대신 IDE 빌드 사용
- Tomcat 대신 Undertow 사용
- 주석 처리 도구(지도 구조, 불변 등)를 남용하여 빌드 프로세스를 지연시키지 마십시오.
추가 정보:
이 글에서 권장하는 사용법@ComponentScan(lazyInit = true)
로컬 개발 환경용입니다.
TL;DR
델이 실현하고 싶은 것은, 로컬 개발 환경에서만 빈의 게으른 로딩을 유효하게 해, 생산의 초기화를 적극적으로 실시하는 것입니다.사람들은 케이크도 먹을 수 없다고 하지만 봄과 함께라면 실제로 먹을 수 있다.모두 프로필 덕분이에요
@SpringBootApplication public class LazyApplication { public static void main(String[] args) { SpringApplication.run(LazyApplication.class, args); } @Configuration @Profile("local") @ComponentScan(lazyInit = true) static class LocalConfig { } }
언급URL : https://stackoverflow.com/questions/35709234/minimise-spring-boot-startup-time
'programing' 카테고리의 다른 글
프로젝터와 카르마를 함께 사용할 수 있습니까? (0) | 2023.03.28 |
---|---|
React/Redux/Typescript 알림 메시지에서 컴포넌트를 자체에서 마운트 해제, 렌더 해제 또는 삭제하는 방법 (0) | 2023.03.28 |
열에서 중복 항목 찾기 (0) | 2023.03.28 |
WordPress 플러그인이 설치되었는지 확인하는 방법이 있습니까? (0) | 2023.03.28 |
WooCommerce에서 프로그래밍 방식으로 고객 과금 정보 업데이트 (0) | 2023.03.28 |