Solon v3.0.0

solon-aot

native </> markdown

此插件,由社区成员(馒头虫/飘虫,读钓)贡献

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-aot</artifactId>
</dependency>

1、描述

基础扩展插件。是 Java Aot 的 Solon 增强形式。借用 solon 运行时容器收集信息,并生成 Aot 代理类(用于在原生运行时下替代 Asm 代理类)及各种原生元信信配置文件:

文件说明
"$$SolonAotProxy" class用于替代 Asm 的代理类
native-image.properties原生镜像编译参数配置
proxy-config.jsonJdk 代理接口申明配置
reflect-config.json反射申明配置
resource-config.json资源申明配置
serialization-config.json序列化类申明配置
solon-resource.jsonSolon 资源申明配置

学习参考:Solon Native 开发

2、应用示例

生产项目往往依赖大量的第三方框架,要实现原生编译是个麻烦的事情。只是自动生成 Aot 代理类及各种原生元信信配置文件,仍然是不够的。还有无法自动触及的地方,需要项目定制。

"solon-aot" 的 RuntimeNativeRegistrar 接口,为项目定制提供了友好的接口。

例:

@Component
public class RuntimeNativeRegistrarImpl implements RuntimeNativeRegistrar {
    @Override
    public void register(AppContext context, RuntimeNativeMetadata metadata) {
        metadata.registerResourceInclude("com.mysql.jdbc.LocalizedErrorMessages.properties");
    }
}

更多使用,可以查看 RuntimeNativeMetadata 提供的各种接口。

3、演示项目: