你们好,我是大家的码农大哥——栈长。java
6 月初的时候给你们介绍了 Spring 团队的最新杀手锏项目:Spring Native,它的存在就是干掉 JVM,另起一个 JVM 以外的生态,上篇也简单实战了一下,相信你们都有了一个全新的认知,没看过的能够点连接进去看下。git
Spring Native 上一个版本为:0.9.2,只支持 Spring Boot 2.4.5。
Spring Native 最近又发布了基于 Spring Boot 2.5 和 GraalVM 21.1 的最新 0.10.0 版本:github
Spring Boot 前阵子刚升级到 Spring Boot 2.5.1,Spring Native 如今就开始支持 Spring Boot 2.5,支持进度真快,对研究 Spring Native 的同窗也是福音了。。面试
Spring Native 0.10.0 带来了一些新特性,还包括 43 个 bug 修复、文档改进、依赖升级等。spring
之前仅提供 Maven 插件支持,如今终于能够支持官方 Gradle 插件了。安全
而且,还提供了新的构建工具(native-build-tools):intellij-idea
https://github.com/graalvm/na...
它取代了以前的 native-image-maven-plugin
插件,它能够经过本地原生镜像编译器来构建和测试你的原生应用。maven
这个升级就感受有点大,意味着以前那个插件的玩法就行不通了,须要用这个新的构建工具插件。。ide
如今能够使用 mvn -Pnative test
或 gradle nativeTest
以原生镜像的方式运行 JUnit 5 单元测试用例。工具
另外,Spring Native 如今也添加了单元测试初始化支持,所以以 @SpringBootTest
编写的单元测试用例也能够做为原生镜像运行。Spring Boot 单元测试不清楚的,能够关注公众号:Java技术栈,看看栈长写的教程。
咱们都知道,原生镜像须要在构建时就定义代理,在前面的 Spring Native 版本中,Spring Native 也只能支持基于接口的 JDK 代理,不支持经过 CGLIB 基于普通类的代理,由于 Spring Native 的原生特性就不能支持在运行时生成字节码。
// Typical security use case of a class proxy now supported on native @Service public class GreetingService { public String hello() { return "Hello!"; } @PreAuthorize("hasRole('ADMIN')") public String adminHello() { return "Goodbye!"; } }
可是从 Spring Native 0.10.0 这个版本开始,基于普通类的代理也能够搞定了,如今能够在构建时经过 @AotProxyHint
注解来生成类的代理,这真是一个大的突破,牛皮!!!
须要注意的是:
之前的 @ProxyHint 已重命名为 @JdkProxyHint,以免混淆。
它支持安全性、事务、以及其余基于普通类的代理机制,后续也将改进对此类模式的自动检测,以减小大量所需的显示提示。
本文介绍了 Spring Native 0.10.0 的 3 个重要的核心特性,每一个都是重磅,能够看出 Spring Native 还处于快速的更新迭代中。
更多发布的细节能够参考:
https://github.com/spring-pro...
快速开启 Spring Native:
https://start.spring.io/
如图所示,Spring Native 目前还属于体验项目,但它无需 JVM,有更快的性能、更少的资源占用,这确定是将来的趋势,有兴趣的能够研究下,有不清楚的能够看看栈长的 Spring Native 实战,源码已经上传:
https://github.com/javastacks...
栈长有时间也会继续研究分享 Spring Native 动态及教程,公众号Java技术栈第一时间推送,请你们持续关注哦!
最后,以为个人文章对你用收获的话,动动小手,给个在看、转发,原创不易,栈长须要你的鼓励。
参考资料:
https://spring.io/blog/2021/0...
https://github.com/spring-pro...
版权申明:本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重你们的劳动成果和知识产权,抄袭必究。
近期热文推荐:
1.1,000+ 道 Java面试题及答案整理(2021最新版)
2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!
3.阿里 Mock 工具正式开源,干掉市面上全部 Mock 工具!
4.Spring Cloud 2020.0.0 正式发布,全新颠覆性版本!
以为不错,别忘了随手点赞+转发哦!