Я сталкиваюсь с проблемой замедления во время запуска после перехода с SpringBoot1 на SpringBoot2 в приложении с поддержкой Java8.
Для запуска требуется 35-40 минут и около 15 для одного компонента, создающего имя 'tomcatPoolDataSourceMetadataProvider'.
07/08/2019 15: 46: 05.382 ОТЛАДКА
org.springframework.beans.factory.support.DefaultListableBeanFactory:
[main] [{}] - Автопроводка по типу из имени бина
'Org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration $ DataSourcePoolMetadataMetricsConfiguration'
через конструктор для компонента с именем 'tomcatPoolDataSourceMetadataProvider'
08/08/2019 16: 00: 03.649 ОТЛАДКА
org.springframework.beans.factory.support.DefaultListableBeanFactory:
[main] [{}] - Создание общего экземпляра синглтон-компонента
'Org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration'
import com.expedia.lodging.booking.metrics.annotation.EnableApplicationMetrics;
import expedia.content.solutions.metrics.spring.EnableMetrics;
import expedia.content.solutions.poke.spring.support.EnablePoke;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ImportResource;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.servlet.DispatcherServlet;
@SpringBootApplication(exclude = {DataSourcePoolMetricsAutoConfiguration.class})
@ImportResource(locations = {"classpath:spring-config.xml"})
@EnableCaching(proxyTargetClass = true)
@EnableScheduling
@EnablePoke
@EnableMetrics
@EnableApplicationMetrics
public class Application {
@Value("${http.port}")
private int httpPort;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public ServletRegistrationBean servletRegistrationBean(DispatcherServlet dispatcherServlet) {
ServletRegistrationBean register = new ServletRegistrationBean(dispatcherServlet);
register.addUrlMappings("/*", "/ping"); // Allow root level ping.
return register;
}}