Quarkus 后端开发记录

最近业余在开发一款智能助理产品,记录开发过程中的一些问题以备忘,也是帮其他人防坑。

主要技术栈

  • Quarkus: the Supersonic Subatomic Java Framework.
  • RESTEasy Reactive: 实现 RESTful 接口 (JAX-RS)
  • Hibernate Reactive: 是 Hibernate ORM 的响应式 API,支持非阻塞数据库驱动程序和响应式与数据库的交互方式。
  • Panache: 简化基于 Jakarta REST、Hibernate ORM 的 CRUD 操作
  • Neo4j: 图数据库
  • Postgresql: 关系型数据库
  • GraphQL: 接口
  • JWT: 认证
  • websocket: 实时通信
  • JDK 17
  • Apache Maven

前端 Nextjs 技术栈

开发

启动开发模式,支持代码热加载:

./mvnw compile quarkus:dev

提示: Quarkus 开发模式下提供了一个 Dev UI:http://localhost:8080/q/dev-ui/ .

接口

Openapi swagger-ui
http://localhost:8080/q/swagger-ui

打包

./mvnw package

打包完成在 target/quarkus-app/ 目录下生成 quarkus-run.jar 文件.
注意默认不是 über-jar 模式, 相关依赖会生成到 target/quarkus-app/lib/ 目录下.

运行

java -jar target/quarkus-app/quarkus-run.jar.

über-jar 打包模式:

./mvnw package -Dquarkus.package.type=uber-jar
# 运行
java -jar target/*-runner.jar

创建本地可执行程序

./mvnw package -Pnative

Or, if you don’t have GraalVM installed, you can run the native executable build in a container using:

./mvnw package -Pnative -Dquarkus.native.container-build=true

运行程序: ./target/xueji-server-1.0.0-SNAPSHOT-runner

更多关于创建本地应用参考: https://quarkus.io/guides/maven-tooling.

注意

  • 端口按照应用核心的需要来设计而不是简单地套用工具的 API。 it is of utmost importance that the Ports are created to fit the Application Core needs and not simply mimic the tools APIs.
  • 配置阿里格式 Idea 插件: https://github.com/alibaba/p3c/blob/master/idea-plugin/README_cn.md

升级 Quarkus

Chocolatey is a package manager for Windows.

# 安装
choco install quarkus 
# 升级 quarkus cli
choco upgrade quarkus
# 升级 quarkus 版本
quarkus update

指南

  • Explicit Architecture (guide): 架构设计,DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together
  • RESTEasy Reactive (guide): A Jakarta REST implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.
  • Mutiny(guide): Intuitive Event-Driven Reactive Programming Library for Java
  • Quarkus Neo4j (guide): Quarkus-Neo4j extension, based on the official Neo4j Java Driver.
  • Hibernate Reactive Panache (guide): Making your entities trivial and fun to write in Quarkus.
  • Reactive PostgreSQL client (guide): Connect to the PostgreSQL database using the reactive pattern
  • REST Client Reactive (guide): Interact with REST APIs
  • WebSockets (guide): WebSocket communication channel support
  • SmallRye JWT (guide): Secure your applications with JSON Web Token
  • SmallRye JWT Build (guide): Create JSON Web Token with SmallRye JWT Build API
  • SmallRye GraphQL (guide): Create GraphQL Endpoints using the code-first approach from MicroProfile GraphQL
  • Transaction Manager (guide): Quarkus comes with a Transaction Manager and uses it to coordinate and expose transactions to your applications
  • Scheduler (guide): Schedule jobs and tasks

欢迎合作

如果这篇文章对您有所帮助,欢迎点赞、分享和留言,让更多的人受益。感谢您的细心阅读,如果发现了任何错误或需要补充的地方,请随时告诉我,我会尽快处理 ^_^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚幻引擎(Unreal Engine)技术使得《黑神话悟空传》大火,现在重视C++的开始吃香了,JAVA,Go,Unity都不能和C++相媲美!

虚幻引擎(Unreal Engine)火了黑神话游戏。 往后,会有大批量的公司开始模仿这个赛道! C 的虚拟引擎技术通常指的是使用 C 语言开发的游戏引擎,如虚幻引擎(Unreal Engine)等。以下是对 C 虚拟引…

【HarmonyOS 4.0】全局UI方法

1. 弹窗 1.1 Toast - 消息提示 常用于显示一些简短的消息或提示,一般会在短暂停留后自动消失。 import promptAction from ohos.promptActionpromptAction.showToast(options: {message: string | Resource, duration: number, bottom: string | number}): void1.2…

数据库应用

一、数据库基本概念 1、数据 (1)描述事物的符号记录称为数据(Data)。数字、文字、图形、图像、声音、档案记录等 都是数据。 (2)数据是以“记录”的形式按照统一的格式进行存储的,而不是杂乱…

AI学习记录 - 怎么理解 torch 的 nn.Conv2d

有用就点个赞 怎么理解 nn.Conv2d 参数 conv_layer nn.Conv2d(in_channels3, out_channels 64, kernel_size3, stride1, padding0, biasFalse) in_channels in_channels 可以设置成1,2,3,4等等都可以,一般来说做图像识别的时…

SD-WAN组网部署需要多久?

企业在发展时,对能够快速响应需求、降低成本、提升网络性能与安全性的解决方案的需求日益迫切。SD-WAN作为一种创新的网络技术,正逐渐成为企业实现这一目标的关键工具。许多企业关心的问题是:部署SD-WAN需要多长时间?接下来我们将…

舍得酒业增长梦魇浮现:上半年业绩下挫,库存激增仍要扩产

撰稿|行星 来源|贝多财经 2024年,白酒行业仍处于“存量竞争”下的调整恢复期。而据中国酒业协会理事长宋书玉透露,今年上半年全国白酒产量、销售收入、利润分别同比增长3%、11%和15%,实现量、价、利齐升,展现出强大的韧性。 在市…

基于分布式计算的电商系统设计与实现【系统设计、模型预测、大屏设计、海量数据、Hadoop集群】

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目展示项目介绍 目录摘要Abstract1 引言1.1 研究背景1.2 国内外研究现状1.3 研究目的1.4 研究意义 2 关键技术理论介绍2.1 Hadoop相关组件介绍2.2 分布式集群介绍2.3 Pyecharts介绍2.4 Fl…

CSS文本样式(一)

一、font-family 1、font-family属性 font-family​ :属性指定元素的​字体​,语法格式如下: ​font-family​: 字体1,字体2,...; 有两种字体系列名称: ​字体系列​:特定的字体系列(如Times New Rom…

深度学习-批量与动量【Datawhale X 李宏毅苹果书 AI夏令营】

实际工程中使用批量和动量可以对抗鞍点或局部最小值。 批量: 在计算梯度的时候不会用所有数据计算损失。类比我们考试复习时,一个单元一个单元的知识点输入,所有单元都输入就是一整个轮回。而这一个单元用深度学习的术语来说就是批量&#x…

SpringBoot实现Word转PDF/TXT

背景 研发工作中难免会遇到一些奇奇怪怪的需求,就比如最近,客户提了个新需求:上传一个WORD文档,要求通过系统把该文档转换成PDF和TXT。客户的需求是没得商量的,必须实现!承载着客户的期望,我开始…

谷粒商城实战笔记-269~271-商城业务-订单服务-bug修改

文章目录 一,269-商城业务-订单服务-bug修改二,270-商城业务-订单服务-订单确认页渲染三,271-商城业务-订单服务-订单确认页库存查询四,272-商城业务-订单服务-订单确认页模拟运费效果 一,269-商城业务-订单服务-bug修…

postgresql底层Driver驱动包数据库是怎么连接,怎么发送数据,怎么设置超时

##一、建立连接 ##connectionFactory.openConnectionImpl ##底层也没什么神秘的,就是使用的socket通讯 ##连接,打开流 ##socket.connect ##获取到读写流 ##二、数据库连接池创建Connection连接 ##三、发送相关sql数据 ##发数据 ##发送查询 ##sendParse(q…

three.js渲染中文的3D字体

下载中文字体 引入下面的代码 点击下载 提取码: lywa <!DOCTYPE html> <html lang"en"><head><title>three.js webgl - modifier - tessellation</title><meta charset"utf-8"><meta name"viewport" c…

第二证券:A股公司中期分红踊跃 红利资产获机构关注

A股公司2024年半年报正在密布宣布&#xff0c;上市公司中期分红计划备受商场重视。据统计&#xff0c;到8月26日&#xff0c;有中期分红计划的A股公司近370家&#xff0c;创下前史新高。业内人士称&#xff0c;得益于政策层面的生动引导&#xff0c;上市公司分红“大军”敏捷扩…

网络基础:理解 IP 地址与网段(网段是什么,网段与IP地址)

前言 在计算机网络中&#xff0c;网段 和 IP地址是网络通信中的两个至关重要的概念&#xff0c;但它们并不相同。这里来介绍一下它们之间的关系&#xff0c;简单记录一下 一. 网段 网段是指一个 IP 地址范围&#xff0c;通常由一个 IP 地址和一个子网掩码共同定义。子网掩码用…

2025秋招大语言模型落地实践面试题

本文系统地从计算力基础设施、软件架构、数据资源、应用场景和脑科学五大核心维度对大模型实践中的问题进行解答 以下是根据您的推文生成的目录: 下面是按照原文的问题重新整理的目录: 目录 计算力基础设施 1.1 什么是云边端协同架构?1.2 信息技术应用创新计划相关政策对企…

5、计算属性的使用

其实计算属性的get和set是不关联的&#xff1b;get时是跟双向绑定的数据有关&#xff0c;当那个数据变化的时候就触发一下get&#xff0c;更改状态。set时就是处理当改数据变化时&#xff0c;进行的一些处理 <template><div><h1>hi {{msg}}</h1><!…

赛博朋克游戏 各种游戏定制开发 软件定制开发 游戏开发 区块链游戏开发

赛博朋克&#xff0c;是“控制论”与“朋克”的合成词。字面意思&#xff0c;就是对“机械文明”的反思。该背景大多描绘在未来&#xff0c;建立于“低端生活与未来科技结合”的基础上&#xff0c;拥有先进科学技术&#xff0c;再以一定程度崩坏的社会结构做对比。之后&#xf…

在Ubuntu系统中安装R语言并使用R Markdown

官方提供的R语言安装教程&#xff1a;全面的 R 存档网络 (tsinghua.edu.cn) 在安装之前先使用命令更新软件列表&#xff0c;命令中的 - qq 参数用于减少命令执行时的输出信息。 # update indices sudo apt update -qq 安装依赖项&#xff1a;dirmngr&#xff08;用于管理密钥…

mysql的聚簇索引、非聚簇索引、回表

1.聚簇索引和非聚簇索引 聚簇索引&#xff08;聚集索引&#xff09;&#xff1a;数据和索引放在一起&#xff0c;B树的叶子节点存放了整行数据&#xff0c;有且只有一个。 【主键索引和唯一索引&#xff0c;主键唯一&#xff0c;存放的是主键对应的整行数据】非聚簇索引&#…