<mark>此插件，主要社区贡献人（馒头虫/飘虫，读钓）</mark>


```xml
<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.json           |  Jdk 代理接口声明配置 |
|  reflect-config.json          |  反射声明配置 |
|  resource-config.json       |  资源声明配置 |
|  serialization-config.json  | 序列化类声明配置  |
|  solon-resource.json        | Solon 资源声明配置 |

学习参考：[Solon Native 开发](/article/505)

#### 2、应用示例

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

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

例：

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

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


#### 3、演示项目：


* https://gitee.com/noear/solon-native-example
* https://gitee.com/noear/solon-examples/tree/main/4.Solon-Data/demo4013-wood_native
* https://gitee.com/noear_admin/nginxWebUI/tree/solon-native/


