Spring Framework 5.0作为 Spring Boot 2.0 的底层核心框架,就目前已经发布的版本来看,相对于 Spring Framework 4.x 而言,注解驱动的性能提升不是那么明显。然而随着 Spring Framework 注解驱动能能力逐渐受到开发人员的关注,尤其在 Spring Boot 应用场景中,大量使用注解 @CompoentScan 扫描指定的 package,当扫描的 package 所包含的类越多时,Spring 模式注解解析的耗时就越长。对于这个问题,Spring Framework 5.0 版本引入的注解 @Indexed,为 Spring 模式注解添加索引,以提升应用启动性能。

举个栗子:

@Indexed
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {}

但是,注解 @Indexed 不能孤立地存在,需要在工程 pom.xml 中增加 org.springframework:spring-context-indexer 依赖:

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

当工程打包为 JAR 或在 IDE 工具中重新构建后,METE-INF/spring.components 文件将自动生成。换言之,该文件在编译时生成。当 Spring 应用上下文执行 @CompoentScan 扫描时,METE-INF/spring.components 将被 CandidateComponentsIndexLoader 读取并加载,转化为 CandidateComponentsIndex 对象,进而 @CompoentScan 不再扫描指定的 package,而是读取 CandidateComponentsIndex 对象,从而达到提升性能的目的。

Spring5--@Indexed注解相关推荐

  1. SpringFramework5.0 @Indexed注解 简单解析

    使用场景 在应用中有大量使用@ComponentScan扫描的package包含的类越多的时候,Spring模式注解解析耗时就越长. 使用方法 在项目中使用的时候需要导入一个spring-contex ...

  2. java Spring5 Nullable注解使用

    java Spring5 核心容器 支持 @Nullable注解 这个注解 可以使用在 方法 属性 参数上 它表示 如果用在方法上 则方法返回值可以为空 如果用在属性上 说明属性值可以为空 用在参数上 ...

  3. spring5之IOC入门笔记

    下一篇-spring代理 目录 第一章 spring概述 第二章 IOC之XML方式管理bean 2.1导入依赖 2.2 创建容器 2.3 获取Bean对象 2.4 bean对象设置别名 2.5 be ...

  4. JAVAEE框架之Spring新注解

    五.Spring5 新注解 ​ 新的注解有用,为后面的SpringBoot可以打一个基础,因为到SpringBoot的课程, 多了很多注解.这时候,先了解一部分. 5.1 @Configuration ...

  5. 最新整理Spring面试题2023

    Spring面试专题 1.Spring应该很熟悉吧?来介绍下你的Spring的理解 有些同学可能会抢答,不熟悉!!! 好了,不开玩笑,面对这个问题我们应该怎么来回答呢?我们给大家梳理这个几个维度来回答 ...

  6. 实用到爆,这样优化SpringBoot系统启动速度提高100倍

    微服务用到一时爽,没用好就呵呵啦,特别是对于服务拆分没有把控好业务边界.拆分粒度过大等问题,某些 Spring Boot 启动速度太慢了,可能你也会有这种体验,这里将探索一下关于 Spring Boo ...

  7. 这样优化Spring Boot,启动速度快到飞起!

    微服务用到一时爽,没用好就呵呵啦,特别是对于服务拆分没有把控好业务边界.拆分粒度过大等问题,某些 Spring Boot 启动速度太慢了,可能你也会有这种体验,这里将探索一下关于 Spring Boo ...

  8. 【springboot系列】这样优化Spring Boot,启动速度快到飞起!

    微服务用到一时爽,没用好就呵呵啦,特别是对于服务拆分没有把控好业务边界.拆分粒度过大等问题,某些 Spring Boot 启动速度太慢了,可能你也会有这种体验,这里将探索一下关于 Spring Boo ...

  9. 还在直接操作 Redis?赶快来试试这个

    以下文章来源方志朋的博客,回复"666"获面试宝典 有些人还在直接用Jedis操作Redis数据库,但这种方式非常不方便,而且很不灵活.用Spring Boot整合Redis之后, ...

  10. mongodb morphia

    原文:http://www.blogjava.net/watchzerg/archive/2012/09/20/388109.html 快速开始: @Entity public class Hotel ...

最新文章

  1. echarts X轴 或者 Y轴 添加标识线
  2. Android新闻类导航栏
  3. 前缀 中缀 后缀表达式
  4. 总算是把用户流失分析讲清楚了!
  5. 一文带你认识FPGA~
  6. python 比例之差z假设检验_假设检验在数据分析中的应用
  7. 研究生导师一般希望招什么样的研究生?
  8. Linux操作系统下三种配置环境变量的方法
  9. 周子学辞任中芯国际董事长
  10. linux shutdown 命令
  11. 自己实现一个简易web服务器
  12. 【深度语义匹配模型】实践篇:语义匹配在贝壳找房智能客服中的应用
  13. C++11 右值引用与移动语义
  14. 微信小程序icon控件
  15. SolidWorks软件远程安装协助
  16. 开发商给埋的五类网线,家中想改为千兆网络怎么办好?
  17. 小米系列手机(包括红米,黑鲨)开启调试模式
  18. 怎么在服务器上搭建网站(搭建服务器需要什么)
  19. 三菱plc232数据线驱动下载_程序怎么上传下载?以西门子S7-200PLC为例为你讲解
  20. 程序查询方式、程序中断方式和DMA方式

热门文章

  1. costmap代价地图学习
  2. AT89C51单片机8位竞赛抢答器_倒计时可调仿真设计
  3. 远程医疗监护系统开发
  4. batchplot 3.6.2 插件_插件分享 | 可在线查询子域名和同IP域名的RapidDNS
  5. java IE11浏览器文件下载的文件名乱码
  6. 计算机共享w7系统文件共享,win7系统怎么共享文件 电脑一键共享文件方法教程...
  7. 13、TWS API和IB中的历史数据
  8. MFC 鼠标光标资源 及 更换
  9. 某电商商品搜索系统架构设计
  10. midi是计算机合成音乐文件,多媒体音频详解.ppt