尝试官方的第一个SpringNative 0.11程序(WSL2)
Spring Native是Spring推出微服务体系Spring Cloud之后的又一大举动,从名字可以猜出,Spring Native是一门面向云原生的技术。如果你还对这个概念不太理解,可以多看一点东西,比如Oracle的GraalVM、红帽的quarkus等。
现在 我们跟着官方示例 Spring Native Docs 一起来跑一下最简单的SN程序。

官方提供了两种方式来构建本地镜像,第一种是基于Docker容器的,我试了好几天也没成功,执行到mvn spring-boot:build-image就失败了,说有“No valid dependencies”。所以这里演示第二种,直接生成可执行文件,这种我成功了。
前奏
使用第二种方法不需要Docker,所以可以关掉了,但是需要调大内存(第一种应该也需要)。
1. 提升可用内存
因为我用的是WSL,所以就是提高它的内存。打开C盘下用户目录的.wslconfig(没有就创建一个)

将其中的memory改成16G,这是我电脑的全部内存大小。如果你电脑内存不够16G,是多少全分给WSL;如果超过了16G,写16G也够,随你。
2. 设置代理
这个过程会依赖GITHUB等一些网站,如果不能外窥,就会总是失败。我尝试了各种网上的代理方法,就算配置成功也不能成功通信,最后还是使用了付费软件。
如果你有自己的SOCKS服务器那说明你会成功的。如果没有,我这边用的是大熊猫,你可以试试,不算太贵,还算稳定,主要是不限流量

找到Linux版本下载下来是一个appimage文件,执行它就打开了登录窗口。还好现在WSL支持图形界面了,不然还是用不了。
准备
接下来按照官方指导,安装GraalVM并下载代码。
1. 安装SKDMAN
在WSL中执行curl -s "https://get.sdkman.io" | bash即可(这一步不需要能够外窥)。
执行成功后,可以执行sdk list java看看正常不。

2. 安装GraalVM
官方安装的版本是11,我们这里使用17.
哦对了,SpringNative 0.11虽然支持Java8,但是后续正式版估计只支持17+,所以这里我也用17。没尝试Java8,有兴趣可以自己试一下。正常GraalVM是不支持java8的,可能需要协调
执行 sdk install java 21.3.0.r17-grl,这个过程需要外窥,所以打开代理。我也折腾了半天才提示成功。
成功后执行sdk use java 21.3.0.r17-grl(可以通过tab补全),然后重启命令行才行,不用重启WSL。这个也折腾了好久,后来看到github上有人报issue才解决。
可以通过sdk current查看结果:

另外需要将本地镜像扩展native-image引入JDK,执行gu install native-image。如果说gu这个命令找不到,可以去GraalVM的bin目录寻找,在WSL的~/.sdkman/candidates/java/21.3.0.r17-grl/bin下面,不过它是一个链接:

3. 配置maven依赖
根据 Sample Project Setup 修改pom.xml。这一整节的内容都要完整修改(除了Test部分可以不改)。
构建
在complete目录执行 mvn -Pnative -DskipTests package 即可,这个过程有点长,而且非常占用内存,大约7个G。打包结束后会立即释放内存的,相当于给你电脑进行了一次清理:)
执行
在target目录下已经打好可执行文件了:

运行这个文件即可。由于是原生应用,启动应该贼快,这也是构建原生应用的目的之一。然后访问 localhost:8080/greeting
最后
目前云原生概念和技术都在高速发展,Java领域的就主要集中在Graal上面,SN和quarkus也都基于GraalVM。可以继续钻研。
尝试官方的第一个SpringNative 0.11程序(WSL2)的更多相关文章
- solaris X86-64下一个ORACLE战斗11.2.0.3.8在一波折叠补丁
solaris X86-64下一个ORACLE战斗11.2.0.3.8补丁: 正确的步骤: 1.BUG6880880 .OPATCH补丁 2.BUG16902043.11.2.0.3.8补丁 情感是练 ...
- Kafka 0.11.0.0 实现 producer的Exactly-once 语义(官方DEMO)
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients&l ...
- Tomcat8.0.11优化相关
Tomcat 8.0.X: 要了解tomcat的优化,我们先看看Tomcat的官方定义:The Apache Tomcat® software is an open source implementa ...
- Redis-4.0.11集群配置
版本:redis-3.0.5 redis-3.2.0 redis-3.2.9 redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 集群 ...
- Mysql8.0.11简介,新特性
MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8 ...
- MySQL-mysql 8.0.11安装教程 windows
网上的教程有很多,基本上大同小异.但是安装软件有时就可能因为一个细节安装失败.我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的. 安装环境:win7 1.下载zip安装包: MySQL ...
- 微信小程序0.11.122100版本新功能解析
微信小程序0.11.122100版本新功能解析 新版本就不再吐槽了,整的自己跟个愤青似的.人老了,喷不动了,把机会留给年轻人吧.下午随着新版本开放,微信居然破天荒的开放了开发者论坛.我很是担心官方 ...
- Kafka 0.11.0.0 实现 producer的Exactly-once 语义(中文)
很高兴地告诉大家,具备新的里程碑意义的功能的Kafka 0.11.x版本(对应 Confluent Platform 3.3)已经release,该版本引入了exactly-once语义,本文阐述的内 ...
- MySQL 8.0.11安装配置
官网地址:https://dev.mysql.com/downloads/mysql/ 我这里是RHEL6.5的系统,因此选择RedHat 6 x86,64bit操作系统---下载第一个RPM Bun ...
- MySQL8.0.11 组复制配置
my.cnf [mysql] prompt='node2 [\h] {\u} (\d) > ' # [client] user = sa password = cc.123 port = 22 ...
随机推荐
- Ubuntu 20.04 安装和配置MySql5.7的详细教程
Ubuntu 20.04 安装和配置MySql5.7的详细教程 https://www.jb51.net/article/202399.htm
- WEB服务与NGINX(22)- nginx的七层负载均衡功能
目录 1. NGINX实现负载均衡功能 1.1 nginx负载均衡概述 1.2 nginx实现http的负载均衡 1.2.1 nginx基于http负载均衡场景配置 1.2.1.1 负载均衡相关参数 ...
- cesium基础知识汇总PPT版
以上教程来自火星科技,原视频教程地址如下: https://ke.qq.com/course/468292/3985600802137412#term_id=100560563
- 荒岛野人Savage
题目描述 样例 3 1 3 4 2 7 3 3 2 1 6 分析 首先,我们先设4个变量,初始坐标 \(d[i]\),每年步数 \(p[i]\),寿命 \(l[i]\),根据题目很容易得到一个不等式 ...
- C语言:快速排序(详解)
快速排序采用的是两头对比交换 http://t.csdn.cn/TXcAK 上面这个连接大家可以点进去看看博客李小白大大的图文解释,我觉得这个是对我启发比较大的,对刚接触快速排序的人来说非常友好,很快 ...
- .NET ASPIRE 预览版 7 发布
.NET Aspire 预览版 7 并不是原计划的一部分,此预览版有很多重大 API 更改,部分原因是一旦产品发布,我们将致力于稳定的 API 表面.可以说,Aspire团队希望确保在最终发布之前完成 ...
- 物联网平台选型葵花宝典:盘点开源、SaaS及通用型平台的优劣对比
随着工业物联网领域和智慧物联领域的发展,大大小小的物联项目和物联场景需求层出不穷,物联网平台作为技术底座型软件,是不可或缺的项目地基. 市场需求下,物联网平台提供商越来越多,"打地基&quo ...
- 树莓派 ubuntu server 22.x 连接无线网络
前言 树莓派系统安装完成后,需要配置网络,由于家里没有多余的网线(网线多少有点乱),所以决定配置无线上网的方式,现在记录下来操作过程 具体操作 sudo nano /etc/netplan/xxxxx ...
- RoslynPad的简单使用
虽说Visual Studio被我们戏称宇宙最强IDE,但是平常随手写段C#代码进行验证或者语法校验,属于牛刀小试了,显然轻量级C#编辑器更适合这种场景,目前较为流行的则是一代神器 LINQPad,但 ...
- ubuntu安装之后要做的10件事
部分内容整理自网络,如果侵权还请联系 基础配置 换源 换源 [ubuntu清华源镜像站] ctrl+click,进入镜像站链接,选择合适的版本,将镜像地址粘贴到本地文件里,对于: <24.04的 ...