千家信息网

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

发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章给大家分享的是有关Spring中spring-context-indexer依赖有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Spring spring-c
千家信息网最后更新 2025年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安全错误 数据库的锁怎样保障安全 电力调度数据网络安全 nas文件服务器地址 网络安全密钥怎么操作 杭州图信软件开发公司 画一幅手抄报关于网络安全 软件服务器分布式 北京网络安全工程师月薪多少 成立冬奥会网络安全专项工作领导小组 数据库跨服务器备份 数据库技术及应用答案马桂芳 网络技术pdf90网盘 软件开发代码是什么 山东正规的服务器公司 上海管理金融网络技术服务 人气对转服务器有影响吗 华为软件开发认证 mysql数据库学习路线 软件开发日语自我介绍 面试 网络安全与健康教育学习心得体会 关于关系型数据库的表述正确的有 双CPU服务器主机 安徽综合软件开发技巧 数据库技术应用包括 快速学软件开发 服务器系统的设备管理器在哪里 人气对转服务器有影响吗 加强网络技术安全的对策 内容发布系统数据库设计 面试官问软件开发转行理由 下载站服务器配置
0