返回顶部
首页 > 资讯 > 后端开发 > Python >Spring之spring-context-indexer依赖详解
  • 178
分享到

Spring之spring-context-indexer依赖详解

2024-04-02 19:04:59 178人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录spring spring-context-indexer依赖配置SpringBoot启动时自动打开浏览器 spring-context-indexer原理spring-cont

Spring spring-context-indexer依赖


<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-indexer</artifactId>
        <version>5.2.0.RELEASE</version>
        <optional>true</optional>
    </dependency>
</dependencies>

虽然类路径扫描非常快,但是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以上才能使用,亲测有效, 依赖如下:


<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-indexer</artifactId>
        <version>5.2.0.RELEASE</version>
        <optional>true</optional>
</dependency>

然后再你的启动类上加上一个注解: @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 中的模式注解不会被识别。

请务必注意这样的问题。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Spring之spring-context-indexer依赖详解

本文链接: https://lsjlt.com/news/156778.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring之spring-context-indexer依赖详解
    目录Spring spring-context-indexer依赖配置springboot启动时自动打开浏览器 spring-context-indexer原理spring-cont...
    99+
    2024-04-02
  • Spring中spring-context-indexer依赖有什么用
    这篇文章给大家分享的是有关Spring中spring-context-indexer依赖有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Spring spring-context-indexer依赖<...
    99+
    2023-06-25
  • Spring循环依赖之问题复现详解
    目录简介问题复现1.构造器注入2.Feild注入多例(@AutoWired) 3.Setter注入多例(@AutoWired) 解决方案简介 说明 本文介绍Spr...
    99+
    2024-04-02
  • Spring的DI依赖注入详解
    目录1、什么是DI依赖注入?2、利用 set 方法给属性赋值3、利用 构造函数 给属性赋值总结:1、什么是DI依赖注入? spring动态的向某个对象提供它所需要的其他对象。这一点是...
    99+
    2024-04-02
  • Spring 循环依赖之AOP实现详情
    前言: 我们接着上一篇文章继续往下看,首先看一下下面的例子,前面的两个serviceA和serviceB不变,我们添加一个BeanPostProcessor: @Component ...
    99+
    2024-04-02
  • Spring源码之循环依赖之三级缓存详解
    目录循环依赖定义三种循环依赖的情况1.构造器循环依赖2.settler循环依赖3.prototype范围的依赖处理三级缓存机制整体分析源码分析面试题总结循环依赖 定义 循环依赖就 循...
    99+
    2024-04-02
  • Spring循环依赖的解决方案详解
    目录简介方案1. Feild注入单例(@AutoWired)方案2. 构造器注入+@Lazy方案3. Setter/Field注入单例方案4. @PostConstruct方案5. ...
    99+
    2024-04-02
  • Java Spring 循环依赖解析
    目录1、常见问题2、什么是循环依赖?3、循环依赖说明4、BeanCurrentlyInCreationException5、依赖注入的两种方式方式一:构造器方式注入依赖方式二:以 s...
    99+
    2024-04-02
  • Spring入门基础之依赖注入
    目录一、构造器注入二、set注入三、其他方式注入(1)导入约束(2)p命名注入(3)c命名注入一、构造器注入 在前几节已经做过了详细的说明讲解,我们先跳过 二、set注入 依赖注入 ...
    99+
    2024-04-02
  • Spring配置与依赖注入基础详解
    目录1.Spring配置1.1.别名1.2.Bean的配置1.3.import2.依赖注入(DI)2.1.构造器注入2.2.Set 注入(重点)2.3.扩展的注入2.4.Bean的作...
    99+
    2022-11-13
    Spring 配置 Spring 依赖注入
  • Java中的Spring循环依赖详情
    目录一、什么是循环依赖?那么循环依赖是个问题吗?二、Bean的生命周期三、三级缓存解决循环依赖思路分析四、Spring到底解决了哪种情况下的循环依赖五、总结一、什么是循环依赖? 很简...
    99+
    2024-04-02
  • Spring怎么解决循环依赖
    本篇内容介绍了“Spring怎么解决循环依赖”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!写在前面最近,在...
    99+
    2024-04-02
  • 怎么理解Spring循环依赖
    本篇内容介绍了“怎么理解Spring循环依赖”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通常来说,如果问Spring内部如何解决循环依赖,...
    99+
    2023-06-16
  • Spring轻松解决循环依赖
    目录解决循环依赖的原理源码解析总结Spring 框架是一个流行的Java应用程序框架,它提供了许多强大的功能,如依赖注入和面向切面编程。然而在使用 Spring 框架时,我们可能会遇...
    99+
    2023-05-16
    Spring循环依赖怎么解决 Spring循环依赖
  • spring循环依赖策略解析
    循环依赖所谓循环依赖就是多个Bean之间依赖关系形成一个闭环,例如A->B->C->...->A 这种情况,当然,最简单的循环依赖就是2个Bean之间互相依赖:A->B(A依赖B), B->A(B依赖A)...
    99+
    2023-05-31
    spring 循环 依赖策略
  • Spring中的循环依赖
    目录 一、什么是循环依赖?二、Bean的生命周期2.1 Spring Bean 的生命周期2.2 Bean 的生成步骤 三、三级缓存3.1三个缓存分别有什么作用 四、思路分析4.1 为什么 Spring 中还需要 singl...
    99+
    2023-08-16
    spring java 后端
  • Spring源码剖析之Spring处理循环依赖的问题
    前言 你是不是被这个骚气的标题吸引进来的,_ 喜欢我的文章的话就给个好评吧,你的肯定是我坚持写作最大的动力,来吧兄弟们,给我一点动力 Spring如何处理循环依赖?这是最近较为频繁被...
    99+
    2024-04-02
  • spring中如何解决循环依赖
    这期内容当中小编将会给大家带来有关spring中如何解决循环依赖,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.由同事抛的一个问题开始我们先看看当时出问题的代码片段:@...
    99+
    2024-04-02
  • Spring循环依赖的解决方法
    这篇文章主要介绍Spring循环依赖的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!循环依赖其实就是循环引用,很多地方都说需要两个或则两个以上的bean互相持有对方最终形成闭环才是循环依赖,比如A依赖于B,B...
    99+
    2023-06-06
  • Spring循环依赖产生与解决
    目录循环依赖产生情景Spring如何解决循环依赖循环依赖产生情景 探讨如何解决循环依赖之前,更应该思考清楚什么情况下会发生这种问题? 1、模拟Prototype Bean的循环依赖 ...
    99+
    2022-12-20
    Spring如何解决循环依赖 Spring循环依赖
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作