如何创建 Spring 5 组件索引?
2022-09-02 09:45:54
Spring Framework 5显然包含对META-INF / spring.components中的“组件索引”的支持,可用于避免类路径扫描的需要,因此,我认为,可以改善Web应用程序的启动时间。
看:
如何为我计划升级到 Spring 5 的现有 Web 应用创建此类组件索引?
(理想情况下,它会在构建时使用Maven自动生成,但任何其他可行的方法至少会给我一个起点)
Spring Framework 5显然包含对META-INF / spring.components中的“组件索引”的支持,可用于避免类路径扫描的需要,因此,我认为,可以改善Web应用程序的启动时间。
看:
如何为我计划升级到 Spring 5 的现有 Web 应用创建此类组件索引?
(理想情况下,它会在构建时使用Maven自动生成,但任何其他可行的方法至少会给我一个起点)
春季 5添加了新功能,以提高大型应用程序的启动性能。
它在编译时创建组件候选列表。
在此模式下,应用程序的所有模块都必须使用此机制,因为当 ApplicationContext 检测到此类索引时,它将自动使用它,而不是扫描类路径。
要生成索引,我们只需要向每个模块添加以下依赖项
专家:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-indexer</artifactId>
<version>5.0.3.RELEASE</version>
<optional>true</optional>
</dependency>
</dependencies>
格雷德尔
dependencies {
compileOnly("org.springframework:spring-context-indexer:5.0.3.RELEASE")
}
此过程将生成一个 META-INF/spring.components 文件,该文件将包含在 jar 中。
参考 : 1.10.9.生成候选组件的索引
这些文件由名为 的注释处理器库生成。如果您将此库作为“注释处理器路径”添加到maven-compiler-plugin,则文件将在构建时自动生成:META-INF/spring.components
spring-context-indexer
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.springframework</groupId>
<artifactId>spring-context-indexer</artifactId>
<version>5.0.6.RELEASE</version>
</path>
</annotationProcessorPaths>
...
</configuration>
</plugin>
此设置需要 maven 编译器插件版本 3.5 或更高版本。
参见:https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#annotationProcessorPaths