1. 前言
随着我们项目的不断迭代 Bean 的数量会大大增加,如果都在启动时进行初始化会非常耗时。 Spring Boot 允许延迟初始化应用程序, 也就是根据需要初始化 Spring Bean ,而不是在 Spring Boot 启动时创建所有的 Bean 。这样的就可以减少应用程序启动花费的时间。延迟初始化通常又被称为“懒加载”。
2. 延迟初始化
Spring Boot 中的延迟初始化可分为 全局延迟初始化 和 局部初始化 。
注意:以下特性在 Spring Boot 2.2.x 中存在
2.1 全局初始化
全局初始化我们可以通过编程的方式来实现,需要我们来改变 Spring Boot Main 方法的写法。
通常我们的 Main 方法是这样的, 注意这里还没声明全局懒加载 :
/**
* @author felord.cn
* @since 2020/3/31 22:53
*/
@SpringBootApplication
public class DemoSpringbootApplication {
@Lazy
public static void main(String[] args) {
SpringApplication.run(DemoSpringbootApplication.class,args);
}
}
复制代码
全局懒加载写法一:
/**
* @author felord.cn
* @since 2020/3/31 22:53
*/
@SpringBootApplication
public class DemoSpringbootApplication {
@Lazy
public static void main(String[] args) {
SpringApplication sa = new SpringApplication(DemoSpringbootApplication.class);
sa.setLazyInitialization(true);
sa.run(args);
}
}
复制代码
全局懒加载写法二:
/**
* @author felord.cn
* @since 2020/3/31 22:53
*/
@SpringBootApplication
public class DemoSpringbootApplication {
@Lazy
public static void main(String[] args) {
SpringApplicationBuilder sab = new SpringApplicationBuilder(DemoSpringbootApplication.class);
sab.lazyInitialization(true).run(args);
}
}
复制代码