自我提升
类型
可以朗读
语音朗读
281千字
字数
2021-03-01
发行日期
展开全部
主编推荐语
以“问题-解决方案-讨论”的方式,展示如何利用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
- 关于作者
- 关于封面
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。