sringboot启动花太多时间了
1.延迟初始化(可能第一次启动会慢)
spring.main.lazy-initialization=true
2.关闭JMX
spring.jmx.enabled=false
3.Spring5自带Context Indexer
引入包,并在启动类加入 @Indexed
(测试好像会影响swagger)
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-indexer</artifactId>
<optional>true</optional>
</dependency>
5.惰性初始化
/**
* 惰性初始化
*/
@Configuration
public class LazyInitBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
for (String beanName : beanFactory.getBeanDefinitionNames()) {
beanFactory.getBeanDefinition(beanName).setLazyInit(true);
}
}
}
6.最后是JVM调优(1.关闭分层编译 2.关闭字节码验证)
// -XX:TieredStopAtLevel=1 这个使用需谨慎!
-XX:TieredStopAtLevel=1 -noverify
好了,快去试试吧。
另外有兴趣可研究 Sring Native 毫秒启动sringboot项目,这个更叼!