• Spring5--@Indexed注解 Spring使用@Indexed加快启动速度


    Spring5--@Indexed注解

    Spring5--@Indexed注解
    原创 Crazypokerk_ 最后发布于2019-08-02 17:05:01 阅读数 639 收藏
    展开

    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 对象,从而达到提升性能的目的。
    ————————————————
    版权声明:本文为CSDN博主「Crazypokerk_」的原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Crazypokerk_/article/details/98211897

    Spring使用@Indexed加快启动速度

    Spring使用@Indexed加快启动速度
    原创 Dongguabai 最后发布于2018-11-11 19:46:21 阅读数 3063 收藏
    展开

    Spring读取@Component组件(派生性),有两种实现方式,一种是反射,一种是ASM。反射性能低主要是要loadClass,毕竟Class,需要Load,比如扫描”com.dongguabai”需要把所有的类load,效率太慢。

    ASM相当于直接加载类的资源信息,ReadResource。

    Spring5.0 后面又有了@Indexed,可以预编译。

    会生成spring.compoments文件:

    跟lombok一样在编译期处理。
    ————————————————
    版权声明:本文为CSDN博主「Dongguabai」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Dongguabai/article/details/83961406

  • 相关阅读:
    【转】android新建项目时 出现appcompat_v7工程错误和红色感叹号
    【转】eclipse新建项目,报错“Error: workspaceappcompat_v7 esvalues-v21styles_base.xml No resource found that matches the given name”
    【转】android开发工具Eclipse,androidStudio,adt网盘下载--不错
    【转】Windows搭建Eclipse+JDK+SDK的Android
    【转】Ubuntu 14.04配置安装java环境和android开发环境(包括真机调试环境)
    【转】[MTK软件原创] [SELinux] 如何设置确认selinux模式
    【转】Android中removeCallbacks失效原因
    【转】Android
    【转】Android开发20——单个监听器监听多个按钮点击事件
    【编程】辨异 —— proxy 与 delegate
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/12175152.html
Copyright © 2020-2023  润新知