展开全部

主编推荐语

以“问题-解决方案-讨论”的方式,展示如何利用Quarkus快速提高工作效率和创建可扩展的云原生应用程序。

内容简介

Quarkus建立在我们已经实现的基础技术之上。它使用JPA,JAX-RS,Eclipse Vert.x,Eclipse MicroProfile和CDI等一些熟悉的技术,将这些知识结合到一个适当的,易于部署的,针对OpenJDK您可以高效利用Kubernetes,在应用程序需要扩展时,极大限度地利用机器上的资源。

目录

  • 版权信息
  • O'Reilly Media,Inc.介绍
  • 译者序
  • 序言
  • 前言
  • 第1章 Quarkus概述
  • 1.1 开发者友好
  • 1.2 与Kubernetes集成
  • 1.3 内存和第一响应时间
  • 1.4 Quarkus基本工作流程
  • 第2章 搭建脚手架
  • 2.1 用Maven搭建Quarkus项目的脚手架
  • 问题
  • 解决方案
  • 讨论
  • 2.2 用Gradle搭建Quarkus项目的脚手架
  • 问题
  • 解决方案
  • 讨论
  • 2.3 用Quarkus Start Coding网站搭建Quarkus项目的脚手架
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 2.4 用Visual Studio Code搭建Quarkus项目的脚手架
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 2.5 使用开发模式实时重载
  • 问题
  • 解决方案
  • 讨论
  • 2.6 提供静态资源
  • 问题
  • 解决方案
  • 第3章 开发RESTful服务
  • 3.1 创建一个简单的REST API端点
  • 问题
  • 解决方案
  • 3.2 提取请求参数
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 3.3 使用HTTP响应状态码
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 3.4 绑定HTTP方法
  • 问题
  • 解决方案
  • 另见
  • 3.5 启用跨源资源共享
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 3.6 使用响应式路由
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 3.7 拦截HTTP请求
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 3.8 使用SSL进行安全连接
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 第4章 配置
  • 4.1 使用自定义属性配置应用程序
  • 问题
  • 解决方案
  • 讨论
  • 4.2 以程序化的方式访问配置属性
  • 问题
  • 解决方案
  • 4.3 在外部覆盖配置值
  • 问题
  • 解决方案
  • 4.4 使用profile进行配置
  • 问题
  • 解决方案
  • 讨论
  • 4.5 修改日志配置
  • 问题
  • 解决方案
  • 4.6 添加应用程序日志
  • 问题
  • 解决方案
  • 讨论
  • 4.7 高级日志配置
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 4.8 使用自定义profile进行配置
  • 问题
  • 解决方案
  • 讨论
  • 4.9 创建自定义配置源
  • 问题
  • 解决方案
  • 讨论
  • 4.10 创建自定义转换器
  • 问题
  • 解决方案
  • 讨论
  • 4.11 配置值的分组
  • 问题
  • 解决方案
  • 讨论
  • 4.12 验证配置值
  • 问题
  • 解决方案
  • 讨论
  • 第5章 编程模型
  • 5.1 对JSON进行编组和解组
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.2 对XML进行编组和解组
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.3 校验输入值和输出值
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.4 创建自定义校验
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.5 以程序化的方式校验对象
  • 问题
  • 解决方案
  • 讨论
  • 5.6 依赖注入
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.7 创建工厂类
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.8 执行对象生命周期事件
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.9 执行应用程序生命周期事件
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.10 使用命名限定符
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.11 使用自定义限定符
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.12 限定和配置注解
  • 问题
  • 解决方案
  • 另见
  • 5.13 创建拦截器
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.14 行为测试
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.15 单元测试
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.16 创建mock对象
  • 问题
  • 解决方案
  • 讨论
  • 5.17 使用Mockito创建mock对象
  • 问题
  • 解决方案
  • 5.18 用元注解将多个注解组合为一个注解
  • 问题
  • 解决方案
  • 讨论
  • 5.19 在测试代码前后执行代码
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 5.20 测试原生可执行文件
  • 问题
  • 解决方案
  • 讨论
  • 第6章 打包Quarkus应用程序
  • 6.1 在命令行模式下运行
  • 问题
  • 解决方案
  • 讨论
  • 6.2 创建一个可运行的JAR文件
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 6.3 über-JAR打包
  • 问题
  • 解决方案
  • 6.4 构建原生可执行文件
  • 问题
  • 解决方案
  • 讨论
  • 6.5 为JAR文件构建一个Docker容器
  • 问题
  • 解决方案
  • 6.6 为原生可执行文件构建一个Docker容器
  • 问题
  • 解决方案
  • 讨论
  • 6.7 构建和容器化原生SSL应用程序
  • 问题
  • 解决方案
  • 讨论
  • 第7章 持久化
  • 7.1 配置数据源
  • 问题
  • 解决方案
  • 讨论
  • 7.2 使用多个数据源
  • 问题
  • 解决方案
  • 讨论
  • 7.3 添加数据源的健康检查
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 7.4 定义事务的边界
  • 问题
  • 解决方案
  • 讨论
  • 7.5 设置事务的上下文
  • 问题
  • 解决方案
  • 讨论
  • 7.6 程序化事务控制
  • 问题
  • 解决方案
  • 另见
  • 7.7 设置和修改事务超时时间
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 7.8 使用persistence.xml
  • 问题
  • 解决方案
  • 讨论
  • 7.9 不使用persistence.xml
  • 问题
  • 解决方案
  • 讨论
  • 7.10 使用不同JAR文件的实体
  • 问题
  • 解决方案
  • 讨论
  • 7.11 用Panache持久化数据
  • 问题
  • 解决方案
  • 讨论
  • 7.12 用Panache listAll方法查找所有实体条目
  • 问题
  • 解决方案
  • 7.13 用Panache findById方法查找单个实体
  • 问题
  • 解决方案
  • 7.14 用Panache find和list方法查找实体
  • 问题
  • 解决方案
  • 7.15 用Panache count方法获取实体计数
  • 问题
  • 解决方案
  • 7.16 用Panache page方法对实体列表进行分页
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 7.17 用Panache stream方法对结果进行流处理
  • 问题
  • 解决方案
  • 另见
  • 7.18 测试Panache实体
  • 问题
  • 解决方案
  • 另见
  • 7.19 使用数据访问对象和repository模式
  • 问题
  • 解决方案
  • 另见
  • 7.20 使用Amazon DynamoDB
  • 问题
  • 解决方案
  • 讨论
  • 7.21 使用MongoDB
  • 问题
  • 解决方案
  • 讨论
  • 7.22 用Panache连接MongoDB
  • 问题
  • 解决方案
  • 讨论
  • 7.23 使用Neo4j
  • 问题
  • 解决方案
  • 另见
  • 7.24 使用Flyway
  • 问题
  • 解决方案
  • 讨论
  • 7.25 以程序化的方式使用Flyway
  • 问题
  • 解决方案
  • 讨论
  • 第8章 容错
  • 8.1 自动重试
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 8.2 超时
  • 问题
  • 解决方案
  • 另见
  • 8.3 使用舱壁模式进行过载保护
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 8.4 使用断路器模式避免故障传递
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 8.5 禁用容错功能
  • 问题
  • 解决方案
  • 第9章 可观察性
  • 9.1 使用自动化健康检查
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 9.2 创建自定义健康检查
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 9.3 暴露指标
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 9.4 创建指标
  • 问题
  • 解决方案
  • 计数器
  • 直方图
  • 讨论
  • 9.5 使用分布式跟踪
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 9.6 自定义分布式跟踪
  • 问题
  • 解决方案
  • 讨论
  • 第10章 与Kubernetes集成
  • 10.1 构建和推送容器镜像
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 10.2 生成Kubernetes资源
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 10.3 生成带有健康检查的Kubernetes资源
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 10.4 在Kubernetes上部署服务
  • 问题
  • 解决方案
  • 讨论
  • 10.5 在OpenShift上部署服务
  • 问题
  • 解决方案
  • 10.6 自动构建和部署容器镜像
  • 问题
  • 解决方案
  • 讨论
  • 10.7 通过Kubernetes配置应用程序
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 10.8 使用配置扩展通过Kubernetes配置应用程序
  • 问题
  • 解决方案
  • 10.9 以程序化的方式与Kubernetes集群进行交互
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 10.10 测试Kubernetes Client交互
  • 问题
  • 解决方案
  • 10.11 实现一个Kubernetes Operator
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 10.12 用Knative部署和管理无服务器工作负载
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 第11章 认证与授权
  • 11.1 使用Elytron属性文件配置进行认证和授权
  • 问题
  • 解决方案
  • 讨论
  • 11.2 使用Elytron Security JDBC配置进行认证和授权
  • 问题
  • 解决方案
  • 讨论
  • 11.3 使用MicroProfile JWT进行授权
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 11.4 使用OpenId Connect进行授权和认证
  • 问题
  • 解决方案
  • 另见
  • 11.5 使用OpenId Connect保护网络资源
  • 问题
  • 解决方案
  • 第12章 应用程序密钥管理
  • 12.1 使用Kubernetes中的secret存储数据
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 12.2 使用Vault安全地存储配置的secret
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 12.3 密码即服务
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 12.4 生成数据库密码并存入secret
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 12.5 使用Vault Kubernetes Auth进行认证服务
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 第13章 Quarkus REST客户端
  • 13.1 使用JAX-RS Web客户端
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 13.2 使用MicroProfile REST客户端
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 13.3 实现CRUD客户端
  • 问题
  • 解决方案
  • 讨论
  • 13.4 操作header
  • 问题
  • 解决方案
  • 讨论
  • 13.5 使用REST客户端处理多部分消息
  • 问题
  • 解决方案
  • 13.6 使用REST客户端配置SSL
  • 问题
  • 解决方案
  • 讨论
  • 第14章 使用Spring API开发Quarkus应用程序
  • 14.1 使用Spring依赖注入
  • 问题
  • 解决方案
  • 讨论
  • 14.2 使用Spring Web
  • 问题
  • 解决方案
  • 讨论
  • 14.3 使用Spring Data JPA
  • 问题
  • 解决方案
  • 讨论
  • 14.4 使用Spring Security
  • 问题
  • 解决方案
  • 讨论
  • 14.5 使用Spring Boot属性
  • 问题
  • 解决方案
  • 第15章 使用响应式编程模型
  • 15.1 创建异步HTTP端点
  • 问题
  • 解决方案
  • 另见
  • 15.2 异步流式数据传输
  • 问题
  • 解决方案
  • 另见
  • 15.3 使用消息传递解耦组件
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 15.4 响应Apache Kafka消息
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 15.5 向Apache Kafka发送消息
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 15.6 序列化与反序列化
  • 问题
  • 解决方案
  • 讨论
  • 15.7 使用Kafka Streams API
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 15.8 使用AMQP
  • 问题
  • 解决方案
  • 另见
  • 15.9 使用MQTT
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 15.10 使用响应式SQL进行查询
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 15.11 使用响应式SQL客户端进行插入
  • 问题
  • 解决方案
  • 另见
  • 15.12 使用响应式MongoDB客户端
  • 问题
  • 解决方案
  • 另见
  • 15.13 使用响应式Neo4j客户端
  • 问题
  • 解决方案
  • 第16章 Quarkus的附加功能
  • 16.1 使用Qute模板引擎创建模板
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 16.2 使用Qute渲染HTML
  • 问题
  • 解决方案
  • 讨论
  • 16.3 更改Qute模板的位置
  • 问题
  • 解决方案
  • 16.4 扩展Qute数据类
  • 问题
  • 解决方案
  • 16.5 用OpenAPI描述端点
  • 问题
  • 解决方案
  • 讨论
  • 参考
  • 16.6 自定义OpenAPI规范
  • 问题
  • 解决方案
  • 讨论
  • 参考
  • 16.7 同步发送电子邮件
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 16.8 以响应式方式发送电子邮件
  • 问题
  • 解决方案
  • 讨论
  • 参考
  • 16.9 创建调度任务
  • 问题
  • 解决方案
  • 讨论
  • 另见
  • 16.10 使用应用程序数据缓存
  • 问题
  • 解决方案
  • 讨论
  • 附录A minikube
  • 附录B Keycloak
  • 附录C Knative
  • 关于作者
  • 关于封面
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0

    O'Reilly 业务的核心是独特的专家及创新者网络,众多专家及创新者通过我们分享知识。我们的在线学习(Online Learning)平台提供独家的直播培训、图书及视频,使客户更容易获取业务成功所需的专业知识。几十年来 O'Reilly 图书一直被视为学习开创未来之技术的权威资料。我们每年举办的诸多会议是活跃的技术聚会场所,来自各领域的专业人士在此建立联系,讨论最佳实践并发现可能影响技术行业未来的新趋势。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。