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.Optional
和java.utitl.stream.Stream
等。
java.util.Optional
和java.utitl.stream.Stream
等。
你有两种方法来工作,以耀目:与创建实体PanacheEntity
或创建库PanacheRepository
。 我在这个项目中尝试了两种方法,但是由于实体中的继承问题,我决定坚持使用老式的方法。
带有Panache的Hibernate ORM的基本存储库定义:
- public class OwnerRepository implements PanacheRepository<Owner> {
- List<Owner> findByLastName(String lastName) {
- return list( "lastName" , lastName);
- } }
所有存储库都位于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
https : //github.com/kolorobot/quarkus-petclinic-api
翻译自: https://www.javacodegeeks.com/2020/02/getting-started-with-quarkus.html
翻译自: https://www.javacodegeeks.com/2020/02/getting-started-with-quarkus.html
quarkus