使用 Spring Boot 和 GraalVM 实现原生(系列六)
构建时和运行时处理器
Spring有很多实现。Spring Native 带来了一些仅在构建时处于活动状态的新接口。它们动态地为构建提供提示。理想情况下,这些处理器实现将存在于可重用的库中。转到 Spring 初始化器,命名项目处理器,然后添加 .在 IDE 中打开生成的项目,并通过从 pom.xml 中删除节点来删除所有 Maven 插件配置。您需要手动添加新库:Processor
Processor
Spring Native
build
<dependency>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-aot</artifactId>
<version>${spring-native.version}</version>
<scope>provided</scope>
</dependency>
这个Maven构建产生了一个常规的Java'.jar'工件。您可以像安装和部署任何Maven“.jar”一样安装和部署它:mvn -DskipTests clean install
这个新库引入了新的类型,包括:
BeanFactoryNativeConfigurationProcessor
:当您需要等效于的构建时间时使用BeanFactoryPostProcessor
BeanNativeConfigurationProcessor:
当您需要等效的构建时间时使用BeanPostProcessor
我发现自己大部分时间都在这两个界面中工作。在每个接口中,您会收到对可以检查的内容的引用,以及对可用于以编程方式提供提示的注册表的引用。如果使用 ,则会收到 Bean 工厂中 Bean 的 Bean 元数据实例。如果您正在使用 ,您将收到对整个潜在客户本身的引用。注意:您必须注意只使用 Bean 名称和实例,而不要使用实际的 bean。知道运行时将存在的所有对象,但它不会实例化它们。相反,它可以帮助我们理解正在运行的应用程序的形状 - 类,方法等 - 以派生适当的提示。BeanNativeConfigurationProcessor
BeanFactoryNativeConfigurationProcessor
BeanFactory
BeanDefinition
BeanFactory
您不是将这些类型注册为常规的 Spring bean,而是在服务加载器中注册。因此,给定 call 的实现和 call 的实现,该文件可能如下所示:Processor
spring.factories
BeanFactoryNativeConfigurationProcessor
com.example.nativex.MyBeanFactoryNativeConfigurationProcessor
BeanNativeConfigurationProcessor
com.example.nativex.MyBeanNativeConfigurationProcessor
spring.factories
org.springframework.aot.context.bootstrap.generator.infrastructure.nativex.BeanFactoryNativeConfigurationProcessor=\
com.example.nativex.MyBeanFactoryNativeConfigurationProcessor
org.springframework.aot.context.bootstrap.generator.infrastructure.nativex.BeanNativeConfigurationProcessor=\
com.example.nativex.MyBeanNativeConfigurationProcessor
- 点赞
- 收藏
- 关注作者
评论(0)