1.除了需要@SerializationHint修饰一切pojo
(spring说下一个大版本就能省掉这步)
spring native体验和spring boot几无区别
2.项目调试可以用常规的java -jar模式运行,启动也明显快于普通jre,还支持profile
但是构建时间明显增加
3.mvn -Pnative package会触发本地化构建,直接生成脱离jre的可执行代码
构建开销非常大,尤其内存占用峰值7~8个G,不要随便在CI/CD环境跑……
不支持跨平台构建,而且紧密绑定glib版本号
不支持profile参数,需要预先确保目标环境就是默认环境
需要graalvm中安装了native-image组件
4.因为对glib版本有要求,所以即使跨发行版构建都可能无法在目标环境运行
如果不是按照spring最佳实践直接容器化部署的话
可以考虑用docker做个构建工具,
基于目标平台的image创建环境
然后把代码文件夹bind进去跑构建
一个完整的webflux+r2dbc应用,在2core2G的虚机上跑的毫无压力
pmap显示内存占用100M
--
FROM 116.233.92.*