本文是关于spring中Spring上下文索引器依赖的使用。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。
Spring spring-context-indexer依赖
相关性
属国
groupIdorg.springframework/groupId
artifactIdspring-上下文索引器/artifactId
version5.2.0.RELEASE/version
可选用户/可选用户
/依赖性
/dependencies虽然类路径扫描非常快,但是Spring中有大量的类。添加这种依赖关系可以通过在编译时创建候选对象的静态列表来提高大规模应用程序的启动性能。
在这种模式下,作为组件扫描目标的所有模块都必须使用这种机制。
配置springboot启动时自动打开浏览器 spring-context-indexer原理
int port=8080;
stringport prefix='-server . port=';
for(string : args){ 0
if(arg.startsWith(端口前缀)){ 0
port=integer . parseint(arg . substring(portprefix . length()));
}
}
springapplication . run(appregisterapplication . class,args);
尝试{
Runtime.getRuntime()。exec(' cmd/cstart http://localhost : '端口);
} catch(IOexceptione){ 0
e . printstacktrace();
}现在使用的springboot项目比较大,每次启动都很慢,所以用下面的依赖项,加速:的启动。
spring-context-indexer
说明
1.虽然类路径扫描非常快,但是Spring中有大量的类。添加这种依赖关系可以通过在编译时创建候选对象的静态列表来提高大规模应用程序的启动性能。
2.但是,在这种模式下,作为组件扫描目标的所有模块都必须使用这种机制。只有那时。
3.根据以下:需要使用spring5或更高版本,并且母测试有效
属国
groupIdorg.springframework/groupId
artifactIdspring-上下文索引器/artifactId
version5.2.0.RELEASE/version
可选用户/可选用户
/dependency,然后在启动类中添加一个note : @Indexed,表示如果打开索引,将加快项目的启动速度。
原理说明:
先看官方解释:
在项目中使用@Indexed后,编译打包时项目中会自动生成META-INT/spring.components文件。
当Spring应用程序上下文执行ComponentScan时,META-INT/spring.components将被CandidateComponentsIndex loader读取和加载,并转换为candidate components sindex对象。在这种情况下,@ComponentScan不是扫描指定的包,而是读取CandidateComponentsIndex对象,从而提高性能。
使用需注意点
虽然这个@Indexed注释可以提高性能,但是在使用它时应该注意它。
假设spring应用程序中有一个包含META-INT/spring.components资源的A. JAR,b.jar中只存在模式注释,那么在使用@ ComponentScan扫描这两个JAR中的包时,B. jar中的模式注释将无法被识别。
请注意这样的问题。
感谢阅读!我希望在这里分享这篇关于“spring中Spring上下文索引器依赖有什么用”的文章。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/77259.html