千家信息网

Spring中spring-context-indexer依赖有什么用

发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,这篇文章给大家分享的是有关Spring中spring-context-indexer依赖有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Spring spring-c
千家信息网最后更新 2024年11月16日Spring中spring-context-indexer依赖有什么用

这篇文章给大家分享的是有关Spring中spring-context-indexer依赖有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Spring spring-context-indexer依赖

            org.springframework        spring-context-indexer        5.2.0.RELEASE        true    

虽然类路径扫描非常快,但是Spring内部存在大量的类,添加此依赖,可以通过在编译时创建候选对象的静态列表来提高大型应用程序的启动性能。

在此模式下,作为组件扫描目标的所有模块都必须使用此机制。

配置springboot启动时自动打开浏览器 spring-context-indexer原理

int port = 8080;String portPrefix = "--server.port=";for (String arg : args) {    if (arg.startsWith(portPrefix)) {        port = Integer.parseInt(arg.substring(portPrefix.length()));    }}SpringApplication.run(AppRegisterApplication.class, args);try {    Runtime.getRuntime().exec("cmd /c start http://localhost:" + port);} catch (IOException e) {    e.printStackTrace();}

现在使用的springboot 项目大了, 每次启动都非常的慢, 所有有了以下的依赖, 加速启动:

spring-context-indexer

说明

1.虽然类路径扫描非常快,但是Spring内部存在大量的类,添加此依赖,可以通过在编译时创建候选对象的静态列表来提高大型应用程序的启动性能。

2.但是在此模式下,作为组件扫描目标的所有模块都必须使用此机制。才可以。

3.需要spring5以上才能使用,亲测有效, 依赖如下:

        org.springframework        spring-context-indexer        5.2.0.RELEASE        true

然后再你的启动类上加上一个注解: @Indexed ,用来表示, 你开启了索引, 会加速项目的启动速度.

原理说明:

先看官方的解释:

在项目中使用了@Indexed之后,编译打包的时候会在项目中自动生成META-INT/spring.components文件。

当Spring应用上下文执行ComponentScan扫描时,META-INT/spring.components将会被CandidateComponentsIndexLoader 读取并加载,转换为CandidateComponentsIndex对象,这样的话@ComponentScan不在扫描指定的package,而是读取CandidateComponentsIndex对象,从而达到提升性能的目的.

使用需注意点

虽然这个@Indexed注解能提升性能,但是在使用的时候也需要注意一一下。

假设Spring应用中存在一个包含META-INT/spring.components资源的a.jar,b.jar仅存在模式注解,那么使用@ComponentScan扫描这两个JAR中的package时,b.jar 中的模式注解不会被识别。

请务必注意这样的问题。

感谢各位的阅读!关于"Spring中spring-context-indexer依赖有什么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

对象 性能 模式 注解 项目 应用 编译 内容 原理 可以通过 应用程序 时候 是在 更多 机制 模块 目标 程序 篇文章 组件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南航锐思数据库 医院服务器安全方案 纵腾网络技术有几轮面试 软件开发中心和银行柜台哪个好 网络安全自学教程 数据库为什么要建在山里面 上海游戏软件开发哪的服务好 国家建推进网络安全 服务器svn管理工具 浙江炬腾网络技术有限公司 服务器安全补丁 华为无线网络技术解决副总裁 网络工程毕业做软件开发 网络技术服务案例 软件开发读什么大学 建数据库排序规则 福建美多多互联网科技有限公司 高校网络安全保卫个人先进事迹 青岛erp软件开发教程 数据库系统设计概念题库 白手起家小说软件开发 莫纳什大学网络安全硕士 软件开发合同付款后开发票 软件开发就是编程序这种观点 各大类主要数据库介绍 手机最新网络技术 数据库跟文件系统 云免流服务器配置要求 开展国家网络安全宣传周活动新闻 快手上面老是显示无法访问服务器
0