首页 > 编程知识 正文

spring新特性(spring配置懒加载)

时间:2023-05-04 21:43:51 阅读:92959 作者:4184

缺省情况下,在

关于延迟加载

spring中,所有指定的bean及其从属项目将在启动APP应用程序时初始化容器上下文的创建。 测试代码如下所示。

@Slf4j

@Configuration

公共类演示配置

公共演示配置(

log.warn (演示配置已初始化);

}

{1}启动APP日志:

主要主机:初始化排版软件应用程序上下文

主w.s.c.servletwebserverapplicationcontext :远程应用程序上下文3360初始化集成1193毫秒

主] c.p.c .全球. lazy.config .演示配置:演示配置已初始化

主[美国航空运输委员会] threadpooltaskexecutor 3360初始化执行官服务'

主-嵌入式- Tomcat web服务器3360 tomcatstartedonport (s ) 33608080 http )带上下文路径

典型的程序在启动时需要初始化许多Bean,如初始化数据源、初始化缓存等,因此APP启动非常缓慢。 在spring boot 2.2之前的版本中,通过向这些bean手动添加“@Lazy”注释,在启动时未进行初始化,业务流程根据需要进行了初始化。 上述代码更改如下。

@Lazy

@Configuration

publicclassdemoconfig { }

为什么需要全局懒加载

同上,表示需要向bean手动添加“@Lazy”注释。 也就是说,只能添加到程序中自己实现的bean中。 但是,目前在spring boot APP应用程序中部署了许多第三方启动程序。 例如,默认情况下,如druid-spring-boot-starter数据源注入、spring-boot-starter-data-redis缓存等,引入或添加相关bean

spring boot 2.2中添加了全局懒惰加载属性。 启用后,全局bean将设置为懒惰加载,并根据需要创建spring:

主:

lazy-initialization: true #缺省的假可以通过设置“@lazy(false )”来排除单个bean,并且可以设置为在启动时加载@lazy ) false )

@Configuration

公共类演示配置当然也可以指定规则实现lazyinitializationexcludefilter规则实现排除@Bean

lazyinitializationexcludefilterintegrationlazyinitexcludefilter () {

returnlazyinitializationexcludefilter.forbeantypes (演示配置.类);

}

全局懒加载的问题

通过设置全局懒惰加载,可以减少启动时的创建任务,从而大大缩短APP的启动时间。 但是,全球怠路的缺点可以归纳为以下两点。

Http请求的处理时间变长。 这里准确地说,第一次的http请求的处理时间变长,之后的请求不受影响(说到这里自然会涉及到spring cloud启动后的第一次调用超时问题)。 错误在启动APP时不会抛出,不利于早发现、早解决、早下班。

总结

作者:冷冷zz链接: https://juejin.im/post/5f0f 8341 E51 d 453495701 d 22

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。