quarkus_Quarkus入门


quarkus

 

Quarkus – 一个针对OpenJDK HotSpot和GraalVM量身定制的Kubernetes本机Java堆栈,它是从最佳Java库和标准中精制而成的。 –是一个容器优先的框架,针对快速启动时间和低内存消耗进行了优化。 该框架基于许多流行的Java库构建,并且为构建标准REST以及响应式消息驱动型微服务提供支持。 由于快速的启动时间和较低的内存使用量,Quarkus也可用于在无服务器环境中实现功能。 凭借统一的配置,出色的实时重装功能和工具支持,Quarkus为快速开发应用程序提供了许多可能性。

了解如何开始使用Quarkus和构建PetClinic REST API。

这篇博客文章涵盖:

  • 开发环境要求
  • 建立新专案
  • 使用Java 11开发,构建和运行应用程序
  • 使用Postgres和Flyway进行数据源配置
  • 分页CRUD服务
  • 创建集成测试
  • 实时重新加载和调试
  • Docker化应用程序(本机和非本机)

Spring Boot和Spring Data REST中使用的PetClinic模型。

基本上,它是用于管理虚拟PetClinic的基本CRUD服务:宠物,兽医,来访等。

OpenJDK 11构建的,因此这将是本教程的最佳选择。 安装(和管理Java SDK的多个版本)最简单的方法是使用SDKMAN!

了解如何使用SDKMAN管理多个Java SDK! 轻松

要支持本机映像,请确保安装所有必需的依赖项。 可以在GraalVM文档中找到更多信息: https ://www.graalvm.org/docs/reference-manual/native-image/

GraalVM官方文档: GraalVM

macOS:(Java)开发人员的基本工具

https : //code.quarkus.io

需要以下扩展来构建PetClinic API服务:

  • RESTEasy JAX-RS –实现JAX-RS等的REST框架
  • RESTEasy Jackson –对RESTEasy的Jackson序列化支持
  • SmallRye OpenAPI –使用OpenAPI记录您的REST API – Swagger UI随附
  • 带有Panache的Hibernate ORM –在带有Panache的Hibernate ORM中定义持久性模型
  • Hibernate Validator –验证进入您的REST端点的数据
  • JDBC驱动程序– PostgreSQL – PostgreSQL数据库连接器
  • Flyway –处理数据库架构迁移

选择依赖项后,您可以下载zip,解压缩并开始开发服务。

下载的项目具有标准的Maven项目布局。 它包含Maven包装器,因此无需本地Maven安装即可开发项目。 您还会注意到src/main/docker带有本机和JVM映像的Docker文件。

主配置文件application.properties位于src/main/resources 。 此文件夹还包含META-INF/resources文件夹,用于存储应用程序的静态资源,例如index.html文件。

https : //quarkus.io/guides/datasource

https : //github.com/quarkusio/quarkus/issues/7358

另请参阅: https : //quarkus.io/guides/flyway

pl.codeleak.samples.petclinic.model包中。

带有Panache的Hibernate ORM具有相似的目标:通过消除重复和繁琐的工作,简化了JPA的开发。 Panache支持排序,分页, java.util.Optionaljava.utitl.stream.Stream等。

你有两种方法来工作,以耀目:与创建实体PanacheEntity或创建库PanacheRepository 。 我在这个项目中尝试了两种方法,但是由于实体中的继承问题,我决定坚持使用老式的方法。

带有Panache的Hibernate ORM的基本存储库定义:

  1.   public class OwnerRepository implements PanacheRepository<Owner> {
  2.        List<Owner> findByLastName(String lastName) {
  3.            return list( "lastName" , lastName);
  4.        } }

所有存储库都位于pl.codeleak.samples.petclinic.repository包中。

另请参阅: https : //quarkus.io/guides/hibernate-orm-panache

pl.codeleak.samples.petclinic.api包中。

另请参阅: https : //quarkus.io/guides/cdi-reference

https : //quarkus.io/guides/validation

https : //quarkus.io/guides/openapi-swaggerui

测试数据源属性 。

另请参阅: https : //quarkus.io/guides/getting-started-testing

Prod database 。 我们还需要传递数据源URL。 阅读有关在运行时覆盖配置属性的更多信息:在运行时覆盖属性

https ://quarkus.io/guides/building-native-image

https : //github.com/kolorobot/quarkus-petclinic-api

翻译自: https://www.javacodegeeks.com/2020/02/getting-started-with-quarkus.html

quarkus