SpringBoot快速迁移至Quarkus的方法步骤

Quarkus 是一个目前非常火的 Java 应用开发框架,定位是轻量级的微服务框架。,Quarkus 提供了优秀的容器化整合能力,相较于传统开发框架(Spring Boot)有着更快的启动速度、更小的内存消耗、更短的服务响应。

本文将演示将 SpringBoot 迁移至 Quarkus

Spring Boot 示例程序

使用 JPA 完成 数据库的增删改查操作,基础代码如下

maven 依赖

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
</dependency>

jpa crud

public interface DemoUserDao extends CrudRepository<DemoUser, Long> {
}

迁移至 Quarkus

quarkus-bom 管理了全部 quarkus 插件 maven 依赖的版本信息,引入后所有依赖不需要再定义版本。

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-bom</artifactId>
        <version>1.10.5.Final</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

迁移 spring-web 、spring-jpa 至 quarkus 技术栈。

<dependency>
 <groupId>io.quarkus</groupId>
 <artifactId>quarkus-spring-data-jpa</artifactId>
</dependency>
<dependency>
 <groupId>io.quarkus</groupId>
 <artifactId>quarkus-spring-web</artifactId>
</dependency>

配置文件调整 (还是在 application.yml)

quarkus.datasource.db-kind=mysql
quarkus.datasource.jdbc.driver=com.mysql.cj.jdbc.Driver
quarkus.datasource.username=root
quarkus.datasource.password=root
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/pig_demo?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE

Main 方法调整为 实现 QuarkusApplication ,且需要通过 Quarkus.waitForExit() 保持服务运行。

@QuarkusMain
public class SimpleApplication implements QuarkusApplication {
  public static void main(String[] args) {
    Quarkus.run(SimpleApplication.class,args);
  }
  @Override
  public int run(String... args) {
    Quarkus.waitForExit();
    return 0;
  }
}

启动运行

main 方法启动, 输出 Quarkus banner

__ ____ __ _____  ___ __ ____ ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2021-01-12 22:31:46,341 INFO [io.qua.arc.pro.BeanProcessor] (build-21) Found unrecommended usage of private members (use package-private instead) in application beans:
  - @Inject field com.example.simple.controller.DemoController#userDao
2021-01-12 22:31:48,702 INFO [io.quarkus] (Quarkus Main Thread) Quarkus 1.10.5.Final on JVM started in 4.613s. Listening on: http://localhost:8080
2021-01-12 22:31:48,703 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2021-01-12 22:31:48,703 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [agroal, cdi, hibernate-orm, hibernate-orm-panache, mutiny, narayana-jta, resteasy, resteasy-jackson, smallrye-context-propagation, spring-data-jpa, spring-di, spring-web]

非常重要的是输出了当前已经安装的功能

Installed features: [agroal, cdi, hibernate-orm, hibernate-orm-panache, mutiny, narayana-jta, resteasy, resteasy-jackson, smallrye-context-propagation, spring-data-jpa, spring-di, spring-web]

【扩展】 actuator 监控迁移

添加以下依赖

<dependency>
 <groupId>io.quarkus</groupId>
 <artifactId>quarkus-smallrye-health</artifactId>
</dependency>

指定访问监控断点路径

quarkus.smallrye-health.root-path=/actuator/health

访问监控检查断点测试

 curl http://localhost:8080/actuator/health
{
  "status": "UP",
  "checks": [
    {
      "name": "Database connections health check",
      "status": "UP"
    }
  ]
}⏎

【扩展】Flyway 迁移

添加 quarkus flyway 插件

<dependency>
 <groupId>io.quarkus</groupId>
 <artifactId>quarkus-flyway</artifactId>
</dependency>

指定插件启动策略即可

quarkus.flyway.migrate-at-start=true

>>> 源码 https://gitee.com/log4j/pig

到此这篇关于SpringBoot快速迁移至Quarkus的方法步骤的文章就介绍到这了,更多相关SpringBoot 迁移至Quarkus内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅谈SpringBoot之开启数据库迁移的FlyWay使用

    本文介绍了SpringBoot开启数据库迁移的FlyWay使用,分享给大家,具体如下: 一,首先我先了解下FlyWay是如何运转的. 最简单的方案是将Flyway指向一个空数据库. 它将尝试找到其元数据表.当数据库为空时,Flyway将不会找到它, 而是创建它.您现在拥有一个名为SCHEMA_VERSION的单个空表的数据库 : 该表将用于跟踪数据库的状态.之后,Flyway将开始扫描应用程序的文件系统或类路径进行迁移.它们可以用Sql或Java编写. 然后根据其版本号对迁移进行排序,并按顺序应

  • IDEA 离线迁移Springboot工程的方法步骤

    在工作中可能会遇到需要在内网环境搭建SpringBoot工程的需要,下面我们来搭建一个离线SpringBoot工程 准备工作: 在线搭建好的SpringBoot工程,目的是获取maven下载好的jar包和导入内网的工程源码,jar包的目录可在file->settings->Build,Execution,Deployment->Build Tools->Maven,Local repository中找到. 将repository目录压缩,将工程也压缩,拷贝到内网机中.例如:我的工程

  • 浅谈Spring Boot 2.0迁移指南主要注意点

    Spring官方的Spring Boot 2变动指南,主要是帮助您将应用程序迁移到Spring Boot 2.0,变化部分还是很多很细节的,摘录主要点如下: Spring Boot 2.0需要Java 8或更高版本.不再支持Java 6和7.它还需要Spring Framework 5.0,许多配置属性被重新命名/删除,开发者需要更新他们的application.properties/ application.yml相应.为了帮助您,Spring Boot提供了一个新spring-boot-pr

  • 从SpringMVC迁移到Springboot的方法步骤

    在将SpringMVC项目转移到Springboot上的过程中,主要做了以下的事情 Profile配置 全局变量从properties文件读入 数据源与Mybatis配置 日志文件配置 WebConfig配置(包括原有的web.xml和spring-mvc.xml) 去掉多余的bean注入 本篇文章除了介绍做了些什么和怎么做之外,会多很多多余的废话,关于对原理的一些探讨,知其然也要知其所以然. Profile配置 在传统的Spring项目中,多个profile的配置方式首先是在pom.xml文件

  • SpringBoot整合Flyway的方法(数据库版本迁移工具)

    Flyway是什么 Flyway是一款开源的数据库版本管理工具,Flyway可以独立于应用实现管理并跟踪数据库的变更,Flyway根据自己的约定,不需要复杂的配置就可以实现数据的Migrate.Migrations可以写成SQL脚本,也可以写在Java代码中,Flyway还支持Spring Boot. 简介 在团队开发当中,有可能每个人都是使用自己本地的数据库.当数据库的表或者字段更新时,往往需要告知团队的其他同事进行更新. Flyway数据库版本迁移工具,目的就是解决该问题而诞生的(我自己想的

  • 从Spring迁移到Spring Boot的方法步骤

    从Spring迁移到Spring Boot Spring Boot给我们的开发提供了一系列的便利,所以我们可能会希望将老的Spring 项目转换为新的Spring Boot项目,本篇文章将会探讨如何操作. 请注意,Spring Boot并不是取代Spring,它只是添加了一些自动配置的东西,从而让Spring程序更快更好 添加Spring Boot starters 要想添加Spring Boot,最简单的办法就是添加Spring Boot Starters. <parent> <gro

  • SpringBoot快速迁移至Quarkus的方法步骤

    Quarkus 是一个目前非常火的 Java 应用开发框架,定位是轻量级的微服务框架.,Quarkus 提供了优秀的容器化整合能力,相较于传统开发框架(Spring Boot)有着更快的启动速度.更小的内存消耗.更短的服务响应. 本文将演示将 SpringBoot 迁移至 Quarkus Spring Boot 示例程序 使用 JPA 完成 数据库的增删改查操作,基础代码如下 maven 依赖 <dependency> <groupId>org.springframework.bo

  • springboot快速整合Mybatis组件的方法(推荐)

    Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 原有Spring优缺点分析 Spring的优点分析 Spring是Java企业版(Java Enterprise Edition,

  • SpringBoot Admin的简单使用的方法步骤

    目录 一.快速入门 1.1 SpringBoot Admin服务端的搭建 1.2 SpringBootAdmin client端搭建 1.3 效果展示 二.安全性 2.1 admin-server端安全加固 2.2 admin-client端的安全 三.小结 公司有个SpringBoot项目需要加个监控,网上找了下发现大家都在推荐SpringBootAdmin.SpringBoot Admin是开源社区孵化的项目,用于对SpringBoot应用的管理和监控.SpringBoot Admin 分为

  • SpringBoot配置MongoDB多数据源的方法步骤

    1.项目构建 添加 pom 文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 2.在 application.properties 中添加配置 ##start mongodb for basic #-------------

  • springboot配置mongodb连接池的方法步骤

    application.yml 配置 mongodb: address: localhost:27017 database: soms username: admin password: 123456 # 连接池配置 clientName: soms-task # 客户端的标识,用于定位请求来源等 connectionTimeoutMs: 10000 # TCP连接超时,毫秒 readTimeoutMs: 15000 # TCP读取超时,毫秒 poolMaxWaitTimeMs: 3000 #当

  • Springboot Redis设置key前缀的方法步骤

    properties中配置 #redis redis.masterClusterNodes=10.40.57.197:7000;10.40.57.198:7002;10.40.57.199:7004 redis.slaveClusterNodes=10.40.57.197:7001;10.40.57.198:7003;10.40.57.199:7005 redis.maxTotal=50 redis.maxIdle=10 redis.minIdle=1 redis.maxWaitMillis=1

  • SpringBoot使用Redis缓存MySql的方法步骤

    目录 1项目组成 2运行springboot 2.1官网download最基本的restful应用 2.2运行应用 3访问mysql 4设置redis缓存 1 项目组成 应用:springboot rest api 数据库:mysql jdbc框架:jpa 缓存中间件:redis 2 运行springboot 2.1 官网download最基本的restful应用 教程地址:https://spring.io/guides/gs/rest-service/ 直接download成品,找到git命

  • Docker 中快速安装tensorflow环境的方法步骤

    Docker 中快速安装tensorflow环境,并使用TensorFlow. 一.下载TensorFlow镜像 docker pull tensorflow/tensorflow 二. 创建TensorFlow容器 docker run --name corwien-tensortflow -it -p 8888:8888 -v /Users/kaiyiwang/Code/ai/notebooks:/notebooks/data tensorflow/tensorflow 命令说明 docke

  • Springboot 配置RabbitMQ文档的方法步骤

    简介 RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗 概念: 生产者 消息的产生方,负责将消息推送到消息队列 消费者 消息的最终接受方,负责监听队列中的对应消息,消费消息 队列 消息的寄存器,负责存放生产者发送的消息 交换机 负责根据一定规则分发生产者产生的消息 绑定 完成交换机和队列之间的绑定 模式: direct:直连模式,用于实例间的任务分发 topic:话题模式,通过可配置的规则分发给绑定在该

  • 使用vue-cli4.0快速搭建一个项目的方法步骤

    前言 最近公司的项目终于到了空闲期,而闲不住的我终于把目标放到了项目的迁移上面 因为公司的项目比较早的原因(虽然当时vue-cli也出来了一段时间,但是不敢轻易尝试啊!) 所以使用的环境还是 vue2.x 版本的,而又因为公司的前端项目都是我来搭建的原因(并不是技术大佬,入职早!) 所以所有项目开发的时候一直在用的 vue-cli2.0,后来项目多了也没时间就没往 vue-cli3.0 迁移 现在终于到了空闲期,可以尝试着慢慢迁移了 本篇文章就是主要记录迁移的过程和 vue-cli3.0 的搭建

随机推荐