序言1
前言3
第1章 Quarkus概述7
1.1 开发者友好7
1.2 与Kubernetes集成8
1.3 内存和响应时间8
1.4 Quarkus基本工作流程9
第2章 搭建脚手架10
2.1用Maven搭建Quarkus项目的脚手架10
2.2用Gradle搭建Quarkus项目的脚手架12
2.3 用Quarkus Start Coding网站搭建Quarkus项目的脚手架13
2.4 用Visual Studio Code搭建Quarkus项目的脚手架15
2.5 使用开发模式实时重载19
2.6 提供静态资源20
第3章 开发RESTful服务22
3.1 创建一个简单的REST API端点22
3.2 提取请求参数24
3.3 使用HTTP响应状态码25
3.4 绑定HTTP方法28
3.5 启用跨源资源共享29
3.6 使用响应式路由30
3.7拦截HTTP请求33
3.8 使用SSL进行安全连接35
第4章 配置37
4.1使用自定义属性配置应用程序37
4.2 以程序化的方式访问配置属性41
4.3 在外部覆盖配置值41
4.4 使用profile进行配置43
4.5 修改日志配置44
4.6 添加应用程序日志45
4.7 高级日志配置46
4.8 使用自定义profile进行配置49
4.9 创建自定义配置源51
4.10 创建自定义转换器53
4.11 配置值的分组55
4.12 验证配置值57
第5章 编程模型59
5.1 对JSON进行编组和解组59
5.2 对XML进行编组和解组62
5.3 校验输入值和输出值65
5.4 创建自定义校验69
5.5 以程序化的方式校验对象71
5.6依赖注入73
5.7 创建工厂类75
5.8 执行对象生命周期事件77
5.9 执行应用程序生命周期事件78
5.10 使用命名限定符79
5.11 使用自定义限定符81
5.12 限定和配置注解82
5.13 创建拦截器83
5.14 行为测试85
5.15 单元测试89
5.16 创建mock对象91
5.17使用Mockito创建mock对象92
5.18用元注解将多个注解组合为一个注解94
5.19 在测试代码前后执行代码95
5.20测试本地可执行文件101
第6章 打包Quarkus应用程序104
6.1 在命令行模式下运行104
6.2创建一个可运行的JAR文件106
6.3 über-JAR打包108
6.4 构建原生可执行文件108
6.5 为JAR文件构建一个Docker容器110
6.6 为原生可执行文件构建一个Docker容器111
6.7 构建和容器化原生SSL应用程序112
第7章 持久化115
7.1配置数据源115
7.2 使用多个数据源116
7.3 添加数据源的健康检查117
7.4 定义事务的边界118
7.5 设置事务的上下文119
7.6 程序化事务控制120
7.7 设置和修改事务超时时间121
7.8 使用persistence.xml122
7.9 不使用persistence.xml122
7.10 使用不同JAR文件的实体123
7.11 用Panache持久化数据123
7.12 用Panache listAll方法查找所有实体条目125
7.13 用Panache findById方法查找单个实体125
7.14 用Panache find和list方法查找实体126
7.15 用Panache count方法获取实体计数127
7.16 用Panache page方法对实体列表进行分页127
7.17 用Panache stream方法对结果进行流处理128
7.18 测试Panache实体128
7.19 使用数据访问对象和repository模式129
7.20 使用Amazon DynamoDB130
7.21 使用MongoDB135
7.22 用Panache连接MongoDB139
7.23 使用Neo4j140
7.24 使用Flyway144
7.25 以程序化的方式使用Flyway145
第8章 容错146
8.1 自动重试146
8.2 超时148
8.3 使用舱壁模式进行过载保护149
8.4 使用断路器模式避免故障传递151
8.5 禁用容错功能153
第9章 可观察性155
9.1 使用自动化健康检查155
9.2 创建自定义健康检查157
9.3 暴露指标160
9.4 创建指标162
9.5 使用分布式跟踪167
9.6 自定义分布式跟踪173
第10章 与Kubernetes集成176
10.1 构建和推送容器镜像176
10.2 生成Kubernetes资源179
10.3 生成带有健康检查的Kubernetes资源182
10.4 在Kubernetes上部署服务184
10.5 在OpenShift上部署服务185
10.6 自动构建和部署容器镜像189
10.7 通过Kubernetes配置应用程序190
10.8 使用配置扩展通过Kubernetes配置应用程序192
10.9 以程序化的方式与Kubernetes集群进行交互193
10.10 测试Kubernetes Client交互197
10.11 实现一个Kubernetes Operator198
10.12 用Knative部署和管理无服务器工作负载211
第11章 认证与授权215
11.1 使用Elytron属性文件配置进行认证和授权219
11.2 使用Elytron Security JDBC配置进行认证和授权222
11.3 使用MicroProfile JWT进行授权226
11.4 使用OpenId Connect进行授权和认证232
11.5 使用OpenId Connect保护网络资源236
第12章 应用程序密钥管理237
12.1 使用Kubernetes中的secret存储数据237
12.2使用Vault安全地存储配置的secret240
12.3 密码即服务243
12.4 生成数据库密码并存入secret246
12.5 使用Vault Kubernetes Auth进行认证服务250
第13章 Quarkus RE