quarkus实战之二:应用的创建、构建、部署

这篇具有很好参考价值的文章主要介绍了quarkus实战之二:应用的创建、构建、部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

本篇概览

  • 本文是《quarkus实战》系列的第二篇,目标是开发HelloWorld应用,让我们对quarkus有最基本的了解,写好的代码会在以下几种场景运行,这应该覆盖了大部分运行情况,绿色背景的表示具体的运行方式,可见一共有五种:
    quarkus实战之二:应用的创建、构建、部署

  • 为达到上述目标,接下来的文章会被划分为这几个部分:

  1. 介绍常见三种创建quarkus工程的方式
  2. 创建quarkus工程
  3. IDE导入
  4. 少量编码
  5. 用maven启动dev模式,并验证
  6. 生成二进制可执行文件,并验证
  7. 制作成docker镜像,并验证
  • 接下来,一起实战吧

创建工程的方式

  • 万丈高楼平地起,首先要面对的是如何创建quarkus项目,与SpringBoot类似,quarkus为我们提供了多种辅助方式:
  1. IDEA支持创建quarkus项目:
    quarkus实战之二:应用的创建、构建、部署
    备注:我的mac和ubuntu上的IDEA都没见到这个选项,难道我装了两个假的IDEA?
  2. maven命令支持创建,如下:
mvn io.quarkus.platform:quarkus-maven-plugin:2.7.1.Final:create \
    -DprojectGroupId=org.acme \
    -DprojectArtifactId=getting-started \
    -Dextensions="resteasy"
cd getting-started
  1. 第三种是通过页面操作,在线创建,这种方法直观且简单(不用记命令),推荐使用,打开地址:https://code.quarkus.io/,添加自己的maven配置,然后下载网站生成的工程包,如下图:
    quarkus实战之二:应用的创建、构建、部署
  • 个人对命令行的方式比较偏爱,接下来就用命令行创建工程吧

创建工程

  • 执行以下命令,创建名为hello-quarkus的maven工程
mvn "io.quarkus:quarkus-maven-plugin:create" \
  -DprojectGroupId="com.bolingcavalry" \
  -DprojectArtifactId="hello-quarkus" \
  -DprojectVersion="1.0-SNAPSHOT" \
  -DclassName="HobbyResource" \
  -Dpath="actions"
  • 有了阿里云的加速,等待五分钟左右完成项目创建,控制台输出如下:
[INFO] -----------
[INFO] 
applying codestarts...
[INFO] 📚  java
🔨  maven
📦  quarkus
📝  config-properties
🔧  dockerfiles
🔧  maven-wrapper
🚀  resteasy-codestart
[INFO] 
-----------
[SUCCESS] ✅  quarkus project has been successfully generated in:
--> /home/will/temp/202202/02/24/001/hello-quarkus
-----------
[INFO] 
[INFO] ========================================================================================
[INFO] Your new application has been created in /home/will/temp/202202/02/24/001/hello-quarkus
[INFO] Navigate into this directory and launch your application with mvn quarkus:dev
[INFO] Your application will be accessible on http://localhost:8080
[INFO] ========================================================================================
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:10 min
[INFO] Finished at: 2022-02-24T08:03:03+08:00
[INFO] ------------------------------------------------------------------------
  • 用tree命令看看项目结构,是个标准的maven工程,只是多了个docker目录,里面有几个Dockerfile文件,应该是用来制作镜像的吧:
will@lenovo:~/temp/202202/02/24/001$ tree
.
└── hello-quarkus
    ├── mvnw
    ├── mvnw.cmd
    ├── pom.xml
    ├── README.md
    └── src
        ├── main
        │   ├── docker
        │   │   ├── Dockerfile.jvm
        │   │   ├── Dockerfile.legacy-jar
        │   │   ├── Dockerfile.native
        │   │   └── Dockerfile.native-micro
        │   ├── java
        │   │   └── com
        │   │       └── bolingcavalry
        │   │           └── HobbyResource.java
        │   └── resources
        │       ├── application.properties
        │       └── META-INF
        │           └── resources
        │               └── index.html
        └── test
            └── java
                └── com
                    └── bolingcavalry
                        ├── HobbyResourceTest.java
                        └── NativeHobbyResourceIT.java

14 directories, 13 files
  • 先观察pom.xml,看有哪些要注意的配置,首先是dependencyManagement节点,可见为了维护各依赖库的版本关系,quarkus使用了BOM管理,这样对用户来说就很方便了:
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>${quarkus.platform.group-id}</groupId>
        <artifactId>${quarkus.platform.artifact-id}</artifactId>
        <version>${quarkus.platform.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  • 然后是quarkus的maven插件,如下图,可见此插件提供了丰富的功能,这些不在本篇展开,留待后面使用到了再说吧:
    quarkus实战之二:应用的创建、构建、部署

IDE导入

  • 此时可以用IDE导入这个maven工程了,我这边用的是IDEA,可以看到自动生成的类HobbyResource.java,是个web接口响应类:
    quarkus实战之二:应用的创建、构建、部署

  • 如下图红框,做一点小小的改动,用于验证能否生效:
    quarkus实战之二:应用的创建、构建、部署

  • 改了web接口的返回值,还要记得修改对应的单元测试代码,否则测试就不能通过了,修改HobbyResourceTest.java,如下图黄框所示,原本是is方法,现在改为containsString

quarkus实战之二:应用的创建、构建、部署

启动服务(dev模式)

  • dev模式可以看到更多内部信息,适合开发阶段使用,执行以下命令即可dev模式启动服务:
mvn compile quarkus:dev
  • 控制台输出以下信息,表示服务已启动(还列出了已支持的feature),还问你要不要继续做单元测试:
[INFO] Nothing to compile - all classes are up to date
Listening for transport dt_socket at address: 5005
__  ____  __  _____   ___  __ ____  ______ 
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ 
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/   
2022-02-25 08:07:33,050 INFO  [io.quarkus] (Quarkus Main Thread) hello-quarkus 1.0-SNAPSHOT on JVM (powered by Quarkus 2.7.1.Final) started in 1.580s. Listening on: http://localhost:8080

2022-02-25 08:07:33,066 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2022-02-25 08:07:33,067 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, smallrye-context-propagation, vertx]

--
Tests paused
Press [r] to resume testing, [o] Toggle test output, [:] for the terminal, [h] for more options>
  • 我这里输入r表示继续执行单元测试,等待测试用例执行完成后,如下图:
    quarkus实战之二:应用的创建、构建、部署

  • 用浏览器访问http://localhost:8080/actions,即可看到响应信息,如下图,内容与我们修改的一致:
    quarkus实战之二:应用的创建、构建、部署

  • 访问http://localhost:8080/q/dev/,可以看到丰富的系统信息,该地址只在dev模式有效:
    quarkus实战之二:应用的创建、构建、部署

生成jar包

  • 刚才的mvn命令可以启动服务,但是仅适合用在开发环境,正式部署项目时,我们更常用的方式是做成jar文件再用java运行,来看如何将项目做成jar
  • 我们知道,整个项目依赖了其他的jar库,因此仅仅将HobbyResource.java制作成jar是不够的,我们需要将所有HobbyResource.java编译后与其他依赖jar合并在一起,做成一个完整的jar(SpringBoot应用也是这么做的),这种jar,官方称之为uber-jar
  • 打包,uber-jar(含依赖库),可以用java11启动执行,但是不含http://localhost:8080/q/dev/网页功能:
  • 制作uber-jar的命令很简单,带上quarkus.package.type参数即可,完整命令如下:
mvn clean package -U -Dquarkus.package.type=uber-jar
  • 控制台输出如下,可见生成了名为hello-quarkus-1.0-SNAPSHOT.jar的jar文件:
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ hello-quarkus ---
[INFO] Building jar: /home/will/temp/202202/02/24/001/hello-quarkus/target/hello-quarkus-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- quarkus-maven-plugin:2.7.1.Final:build (default) @ hello-quarkus ---
[INFO] [io.quarkus.deployment.pkg.steps.JarResultBuildStep] Building uber jar: /home/will/temp/202202/02/24/001/hello-quarkus/target/hello-quarkus-1.0-SNAPSHOT-runner.jar
[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 2837ms
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  26.274 s
[INFO] Finished at: 2022-02-26T09:05:51+08:00
[INFO] ------------------------------------------------------------------------
  • 启动应用,命令是java -jar hello-quarkus-1.0-SNAPSHOT-runner.jar,如下,0.8秒还挺快:
will@lenovo:~/temp/202202/02/24/001/hello-quarkus/target$ java -jar hello-quarkus-1.0-SNAPSHOT-runner.jar
__  ____  __  _____   ___  __ ____  ______ 
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ 
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/   
2022-02-26 09:12:12,968 INFO  [io.quarkus] (main) hello-quarkus 1.0-SNAPSHOT on JVM (powered by Quarkus 2.7.1.Final) started in 0.841s. Listening on: http://0.0.0.0:8080
2022-02-26 09:12:12,990 INFO  [io.quarkus] (main) Profile prod activated. 
2022-02-26 09:12:12,990 INFO  [io.quarkus] (main) Installed features: [cdi, resteasy, smallrye-context-propagation, vertx]
  • 浏览器访问服务,正常响应:
    quarkus实战之二:应用的创建、构建、部署

制作二进制可执行文件

  • 接下来要体验的是quarkus的特色了:将项目制作成二进制可执行文件
  • 首先请确认当前环境的docker服务正常
  • 其次内存不要太小(在macbook上试过,可用内存低于4G时报错:Exit code was 137 which indicates an out of memory error)
  • 简单说一下二进制可执行文件是如何制作的:
  1. 我们只需要执行maven命令即可,在命令中带些参数,这些参数是给quarkus的maven插件用的
  2. quarkus的maven插件会下载一个docker镜像(ubi-quarkus-native-image)
  3. 然后用此镜像创建一个容器
  4. 容器中有GraalVM环境,用此环境将制作二进制可执行文件
  5. 制作成功后,容器被销毁
  • 上面步骤虽多,我们的实际操作却很简单,只有第一步,执行如下命令即可:
mvn clean package -U -DskipTests -Dnative -Dquarkus.native.container-build=true
  • 上述命令有一定概览发生Out Of Memory错误,如果你电脑的内存充足,可以酌情指定JVM的最大堆内存,完整命令如下,可见增加了-Dquarkus.native.native-image-xmx参数
mvn clean package -U -DskipTests -Dnative -Dquarkus.native.native-image-xmx=4096m -Dquarkus.native.container-build=true
  • 首次下载docker镜像会消耗一点时间,另外CPU会出现暴涨,如下图:
    quarkus实战之二:应用的创建、构建、部署
  • 我这边耗时两分钟完成了二进制文件制作,控制台输出如下:
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on GraalVM 21.3.1 Java 11 CE (Java Version 11.0.14+9-jvmci-21.3-b09)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] docker run --env LANG=C --rm --user 1000:1000 -v /home/will/temp/202202/02/24/001/hello-quarkus/target/hello-quarkus-1.0-SNAPSHOT-native-image-source-jar:/project:z --name build-native-TArNh quay.io/quarkus/ubi-quarkus-native-image:21.3-java11 -J-Djava.util.logging.manager=org.jboss.logmanager.LogManagerGraalVM -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=3 -J-Duser.language=zh -J-Duser.country=CN -J-Dfile.encoding=UTF-8 -H:-ParseOnce -J--add-exports=java.security.jgss/sun.security.krb5=ALL-UNNAMED -J--add-opens=java.base/java.text=ALL-UNNAMED -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy\$BySpaceAndTime -H:+JNI -H:+AllowFoldMethods -J-Djava.awt.headless=true -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:EnableURLProtocols=http -H:-UseServiceLoaderFeature -H:+StackTrace hello-quarkus-1.0-SNAPSHOT-runner -jar hello-quarkus-1.0-SNAPSHOT-runner.jar
[hello-quarkus-1.0-SNAPSHOT-runner:24]    classlist:   3,543.22 ms,  1.18 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]        (cap):     615.36 ms,  1.18 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]        setup:   2,545.56 ms,  1.18 GB
02:04:45,844 INFO  [org.jbo.threads] JBoss Threads version 3.4.2.Final
[hello-quarkus-1.0-SNAPSHOT-runner:24]     (clinit):     653.12 ms,  3.30 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]   (typeflow):   5,560.43 ms,  3.30 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]    (objects):  25,577.19 ms,  3.30 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]   (features):   1,546.08 ms,  3.30 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]     analysis:  34,608.07 ms,  3.30 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]     universe:   1,705.85 ms,  3.30 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]      (parse):   6,557.68 ms,  4.91 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]     (inline):   8,785.79 ms,  5.82 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]    (compile):  33,586.33 ms,  6.02 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]      compile:  51,302.42 ms,  6.02 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]        image:   3,213.24 ms,  6.02 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]        write:     608.88 ms,  6.02 GB
[hello-quarkus-1.0-SNAPSHOT-runner:24]      [total]:  97,869.00 ms,  6.02 GB
# Printing build artifacts to: /project/hello-quarkus-1.0-SNAPSHOT-runner.build_artifacts.txt
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] docker run --env LANG=C --rm --user 1000:1000 -v /home/will/temp/202202/02/24/001/hello-quarkus/target/hello-quarkus-1.0-SNAPSHOT-native-image-source-jar:/project:z --entrypoint /bin/bash quay.io/quarkus/ubi-quarkus-native-image:21.3-java11 -c objcopy --strip-debug hello-quarkus-1.0-SNAPSHOT-runner
[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 174203ms
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:58 min
[INFO] Finished at: 2022-02-26T10:06:08+08:00
[INFO] ------------------------------------------------------------------------
  • 此刻,在工程的target目录下,出现了名为hello-quarkus-1.0-SNAPSHOT-runner的二进制可执行文件,这就是本次构建的结果
  • 这个hello-quarkus-1.0-SNAPSHOT-runner文件,已不再是通常理解的java虚拟机+class文件那样的应用了,这是个基于GraalVM构建的二进制文件,它与传统java应用的对比如下图所示,它是绿色的那个,可见从速度到内存,都比传统java应用有不小的优势:
    quarkus实战之二:应用的创建、构建、部署
  • 执行这个文件,如下图,0.016秒的启动时间,优秀:
    quarkus实战之二:应用的创建、构建、部署
  • 再用系统监视器查看内存情况,5MB,厉害了:
    quarkus实战之二:应用的创建、构建、部署
  • 用浏览器访问,响应正常:
    quarkus实战之二:应用的创建、构建、部署
  • 至此,java应用制作成二进制可执行文件的操作就完成了,性能的提升确实很明显,关于这个制作的原理和细节不在本文展开,您有兴趣的话可以关注GravvlVM的资料

制作镜像(基于二进制文件)

  • 有时我们需要将服务部署在docker或k8s环境,所以,接下来尝试将这个java工程制作成docker镜像
  • 先来回顾一下,将java工程制作成docker镜像,如果您之前有过这方面的经历,应该记得下面熟悉的步骤:
  1. 准备一个集成了java环境的镜像作为基础镜像
  2. 编译java工程,得到jar、class、资源文件等
  3. 将jar、class、资源文件这些复制到基础镜像中
  • 上面就是将java工程制作成docker镜像的一般步骤,那么,在quarkus项目中,还需要按照上述步骤去制作docker镜像吗?
  • 当然不需要啦!
  • 只要找个linux系统做为基础镜像,把刚才做好的二进制可执行文件复制进去不就可以了吗?
  • 贴心的quarkus,把Dockerfile都为我们准备好了,就是下图左侧红框中那个,右侧是其内容,就那么寥寥几行,核心是复制那个二进制文件:
    quarkus实战之二:应用的创建、构建、部署
  • 执行下面的命令,轻松完成镜像制作:
docker build \
-f src/main/docker/Dockerfile.native \
-t bolingcavalry/hello-quarkus:0.0.1 .
  • 镜像制作完成后,如下图,镜像只有144M大小,优秀:
    quarkus实战之二:应用的创建、构建、部署
  • 执行以下命令运行镜像试试:
docker run -i --rm -p 8080:8080 bolingcavalry/hello-quarkus:0.0.1
  • 启动依旧超快,0.016秒,四舍五入就是瞬间了:
    quarkus实战之二:应用的创建、构建、部署
  • 浏览器访问服务,一切正常:
    quarkus实战之二:应用的创建、构建、部署
  • 因为启动命令中添加了--rm参数,因此,用ctrl+C退出控制台后,容器会被彻底清理掉
  • 镜像bolingcavalry/hello-quarkus:0.0.1已经上传到hub.docker.com,您可以随时下载体验

制作镜像(基于常规maven构建结果)

  • 除了上述基于二进制文件制作docker镜像,传统的使用常规maven构建结果制作镜像的方式依然有效,这种镜像也不是完全没有作用,可以用在远程热部署场景(关于远程热部署,后面有专门的文章细说),接下来我们试试传统构建镜像的操作
  • 首先是普通的mvn编译:
mvn clean package -U -DskipTests
  • 然后是基于target下面的内容制作镜像,quarkus依然很贴心的帮我们准备好了Dockerfile文件(名为Dockerfile.jvm):
docker build \
-f src/main/docker/Dockerfile.jvm \
-t bolingcavalry/hello-quarkus-jar:0.0.1 .
  • 最后启动镜像试试:
docker run \
-i \
--rm \
-p 8080:8080 \
bolingcavalry/hello-quarkus-jar:0.0.1

未完待续

  • 至此,最简单的quarkus应用已开发完成,相信您已感受到了这个框架的独特魅力,当然了,如果您是一位java后台开发者,大概率会觉得启动快、省内存这些是锦上添花,querkus与SpringBoot的生态差距才是关键,例如:
  1. 有哪些配置
  2. 依赖注入有没有
  3. web框架好用不
  4. CRUD方不方便
  5. 常见中间件支持吗
  • 对于您的和我的诸多疑虑,限于篇幅就不多列举了,但是这些差距确实会影响我们的决策:生态没建好,别说采用了,就是学习都没动力
  • 随着学习的展开和深入,越来越发现自己是多虑了,quarkus的发展还是比较全面的,至少我曾担心的问题都在官方找到了答案,因此,接下来,请随着《quarkus实战》一起继续精彩的quarkus之旅吧,解锁更多精彩实战,欣宸原创,不会辜负您的期待~

欢迎关注博客园:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...文章来源地址https://www.toymoban.com/news/detail-594456.html

到了这里,关于quarkus实战之二:应用的创建、构建、部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • quarkus数据库篇之二:无需数据库也能运行增删改查(dev模式)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇内容并非数据库相关的核心知识,而是对一个实用工具的说明介绍,此工具在官方介绍中被称为 Zero Config Setup (Dev Services) ,(零配置的设置,忒莫名其妙) 我这边简单总结为:如果你没有数据

    2024年02月12日
    浏览(44)
  • HarmonyOS应用开发实战—开箱即用的应用首页页面【ArkTS】

    HarmonyOS(鸿蒙操作系统)是华为公司推出的一种分布式操作系统。它被设计为一种全场景、全连接的操作系统,旨在实现在各种设备之间的无缝协同和共享,包括智能手机、平板电脑、智能穿戴、智能家居、车载系统等。HarmonyOS的目标是构建一个统一的、开放的、全场景的操

    2024年02月02日
    浏览(55)
  • HarmonyOS应用开发实战—开箱即用的个人主页页面【ArkTS】

    HarmonyOS(鸿蒙操作系统)是华为公司推出的一种分布式操作系统。它被设计为一种全场景、全连接的操作系统,旨在实现在各种设备之间的无缝协同和共享,包括智能手机、平板电脑、智能穿戴、智能家居、车载系统等。HarmonyOS的目标是构建一个统一的、开放的、全场景的操

    2024年02月04日
    浏览(59)
  • YOLOv5、v7改进之二十八:ICLR 2022涨点神器——即插即用的动态卷积ODConv

    前 言: 作为当前先进的深度学习目标检测算法YOLOv5、v7系列算法,已经集合了大量的trick,但是在处理一些复杂背景问题的时候,还是容易出现错漏检的问题。此后的系列文章,将重点对YOLO系列算法的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或者

    2024年02月05日
    浏览(32)
  • quarkus依赖注入之一:创建bean

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 对一名java程序员来说,依赖注入应该是个熟悉的概念,简单的说就是:我要用XXX,但我不负责XXX的生产 以下代码来自spring官方,serve方法要使用MyComponent类的doWork方法,但是不负责MyComponent对象的实

    2024年02月15日
    浏览(40)
  • quarkus实战之六:配置

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus实战》系列的第六篇,咱们来掌握一个常用知识点:配置 如同SpringBoot中的 application.properties 文件,对一个quarkus应用来说,配置是其重要的组成部分,web端口、数据库这些重要信息都放

    2024年02月16日
    浏览(29)
  • quarkus实战之一:准备工作

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《quarkus实战》系列是欣宸在2022年春季推出的又一个精品原创系列,作者将自己对java的热爱渗透到每段文字和每行代码中,全系列秉承欣宸一贯的知识+实战风格,既有知识普及、更有实际操作,在涉

    2024年02月16日
    浏览(41)
  • quarkus实战之七:使用配置

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus实战》系列的第七篇,前文讲述了如何在将配置信息传入quarkus应用,今天要练习的是如何使用这些配置信息 整篇文章由以下内容构成: 创建工程,作为演示使用配置项操作的代码 演

    2024年02月15日
    浏览(30)
  • quarkus实战之八:profile

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus实战》系列的第八篇,经过前面的学习,咱们对配置有了足够了解,但问题也随之而来:如何让应用以最小的改动同时运行在不同环境(如本地、测试、生产等) 举个例子,下面是个

    2024年02月15日
    浏览(33)
  • quarkus实战之五:细说maven插件

    quarkus的maven插件非常重要,管理和构建工程时都离不开,本篇就来一起了解和掌握它 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus实战》系列的第五篇,一起去熟悉quarkus的maven插件(就是下图红框中的那个plugin),用好它可以使

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包