{"version":1,"pages":[{"id":"xYr4eqp2RDKMeBTGtUlc","title":"Spring 实战(第 5 版)","pathname":"/spring-in-action-v5","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LrmOwgXeql-rXn56qrf","title":"第一部分 Spring 基础","pathname":"/spring-in-action-v5/di-yi-bu-fen-spring-ji-chu","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LrmQnZHwyXpZ31H5uvo","title":"第 1 章 Spring 入门","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LrmR58GXI7eNGzZJorc","title":"1.1 什么是 Spring？","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.1-shen-me-shi-spring","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"}]},{"id":"-LrmRqj7CqNsNMjlBnfi","title":"1.2 初始化 Spring 应用程序","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.2-chu-shi-hua-spring-ying-yong-cheng-xu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"}]},{"id":"-LrmU2quJGHu51RC5PE9","title":"1.2.1 使用 Spring Tool Suite 初始化 Spring 项目","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.2-chu-shi-hua-spring-ying-yong-cheng-xu/1.2.1-shi-yong-spring-tool-suite-chu-shi-hua-spring-xiang-mu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.2 初始化 Spring 应用程序"}]},{"id":"-LrmUGtQvp97-9ZO9YPg","title":"1.2.2 检查 Spring 项目结构","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.2-chu-shi-hua-spring-ying-yong-cheng-xu/1.2.2-jian-cha-spring-xiang-mu-jie-gou","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.2 初始化 Spring 应用程序"}]},{"id":"-LrmUZIHyYBXhmFT64QX","title":"1.3 编写 Spring 应用程序","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.3-bian-xie-spring-ying-yong-cheng-xu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"}]},{"id":"-LrmUgAu0KBmJjq_XdTF","title":"1.3.1 处理 web 请求","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.3-bian-xie-spring-ying-yong-cheng-xu/1.3.1-chu-li-web-qing-qiu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.3 编写 Spring 应用程序"}]},{"id":"-LrmV5-23Smex0KyHjUv","title":"1.3.2 定义视图","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.3-bian-xie-spring-ying-yong-cheng-xu/1.3.2-ding-yi-shi-tu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.3 编写 Spring 应用程序"}]},{"id":"-LrmVSrcjTYiCahjhDLN","title":"1.3.3 测试控制器","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.3-bian-xie-spring-ying-yong-cheng-xu/1.3.3-ce-shi-kong-zhi-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.3 编写 Spring 应用程序"}]},{"id":"-LrmVnqbW_s638wGIBew","title":"1.3.4 构建并运行应用程序","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.3-bian-xie-spring-ying-yong-cheng-xu/1.3.4-gou-jian-bing-yun-hang-ying-yong-cheng-xu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.3 编写 Spring 应用程序"}]},{"id":"-LrmWDPbVyO6wwoxHHF4","title":"1.3.5 了解 Spring Boot DevTools","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.3-bian-xie-spring-ying-yong-cheng-xu/1.3.5-le-jie-spring-boot-devtools","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.3 编写 Spring 应用程序"}]},{"id":"-LrmWKH2ELSKBaulqGvd","title":"1.3.6 回顾","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.3-bian-xie-spring-ying-yong-cheng-xu/1.3.6-hui-gu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.3 编写 Spring 应用程序"}]},{"id":"-LrmWxWEpKupXTW4AiAx","title":"1.4 俯瞰 Spring 风景线","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.4-fu-kan-spring-feng-jing-xian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"}]},{"id":"-LrmX0aWcjPTliDgnv8R","title":"1.4.1 Spring 核心框架","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.4-fu-kan-spring-feng-jing-xian/1.4.1-spring-he-xin-kuang-jia","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.4 俯瞰 Spring 风景线"}]},{"id":"-LrmX5C7sqAamn0Ni3c9","title":"1.4.2 Spring Boot","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.4-fu-kan-spring-feng-jing-xian/1.4.2-spring-boot","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.4 俯瞰 Spring 风景线"}]},{"id":"-LrmX4jNwUgKcZD3L1h0","title":"1.4.3 Spring Data","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.4-fu-kan-spring-feng-jing-xian/1.4.3-spring-data","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.4 俯瞰 Spring 风景线"}]},{"id":"-LrmX4gW-Az5RDyWbjXT","title":"1.4.4 Spring Security","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.4-fu-kan-spring-feng-jing-xian/1.4.4-spring-security","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.4 俯瞰 Spring 风景线"}]},{"id":"-LrmX4dktVDBkQul_9D4","title":"1.4.5 Spring Integration 和 Spring Batch","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.4-fu-kan-spring-feng-jing-xian/1.4.5-spring-integration-he-spring-batch","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.4 俯瞰 Spring 风景线"}]},{"id":"-LrmX4U8bIYOgI--o7kb","title":"1.4.6 Spring Cloud","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.4-fu-kan-spring-feng-jing-xian/1.4.6-spring-cloud","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"},{"label":"1.4 俯瞰 Spring 风景线"}]},{"id":"-LrmXpj73hlym1cswWN5","title":"1.5 小结","pathname":"/spring-in-action-v5/di-1-zhang-spring-ru-men/1.5-xiao-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 1 章 Spring 入门"}]},{"id":"-LrrHIbF9SDhdH3MtqGK","title":"第 2 章 开发 Web 应用程序","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LrrHYHc7r7yeknZ3PuG","title":"2.1 展示信息","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.1-zhan-shi-xin-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"}]},{"id":"-LrrIhSFY60zjwOIbiUI","title":"2.1.1 建立域","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.1-zhan-shi-xin-xi/2.1.1-jian-li-yu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"},{"label":"2.1 展示信息"}]},{"id":"-LrrIn-qek11cxvHIiis","title":"2.1.2 创建控制器类","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.1-zhan-shi-xin-xi/2.1.2-chuang-jian-kong-zhi-qi-lei","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"},{"label":"2.1 展示信息"}]},{"id":"-LrrIhF-RWLsBBq29eHz","title":"2.1.3 设计视图","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.1-zhan-shi-xin-xi/2.1.3-she-ji-shi-tu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"},{"label":"2.1 展示信息"}]},{"id":"-LrrHXEW-u3WEELFfoGz","title":"2.2 处理表单提交","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.2-chu-li-biao-dan-ti-jiao","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"}]},{"id":"-LrrLwLNeyatvTXU9HYQ","title":"2.3 验证表单输入","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.3-yan-zheng-biao-dan-shu-ru","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"}]},{"id":"-LrrM4v8_xF33adbBAUu","title":"2.3.1 声明验证规则","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.3-yan-zheng-biao-dan-shu-ru/2.3.1-sheng-ming-yan-zheng-gui-ze","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"},{"label":"2.3 验证表单输入"}]},{"id":"-LrrM960AywcT1joRzh8","title":"2.3.2 在表单绑定时执行验证","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.3-yan-zheng-biao-dan-shu-ru/2.3.2-zai-biao-dan-bang-ding-shi-zhi-hang-yan-zheng","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"},{"label":"2.3 验证表单输入"}]},{"id":"-LrrM8rVN35ChOvfOZb-","title":"2.3.3 显示验证错误","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.3-yan-zheng-biao-dan-shu-ru/2.3.3-xian-shi-yan-zheng-cuo-wu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"},{"label":"2.3 验证表单输入"}]},{"id":"-LrrN8LKzYFo2fI8DyeH","title":"2.4 使用视图控制器","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.4-shi-yong-shi-tu-kong-zhi-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"}]},{"id":"-LrrNOYy2aCaRkJBxz1t","title":"2.5 选择视图模板库","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.5-xuan-ze-shi-tu-mo-ban-ku","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"}]},{"id":"-LrrNU50YcMEX52X6_d0","title":"2.5.1 缓存模板","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.5-xuan-ze-shi-tu-mo-ban-ku/2.5.1-huan-cun-mo-ban","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"},{"label":"2.5 选择视图模板库"}]},{"id":"-LrrNrjr0ts-YnL_R0J3","title":"2.6 小结","pathname":"/spring-in-action-v5/di-2-zhang-kai-fa-web-ying-yong-cheng-xu/2.6-xiao-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 2 章 开发 Web 应用程序"}]},{"id":"-Lrx1QgHgzxxBCz8Glid","title":"第 3 章 处理数据","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-Lrx1b5KhuhhfeM4_VLu","title":"3.1 使用 JDBC 读写数据","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.1-shi-yong-jdbc-du-xie-shu-ju","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"}]},{"id":"-Lrx2CTYbhATuK3eTmXZ","title":"3.1.1 为域适配持久化","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.1-shi-yong-jdbc-du-xie-shu-ju/3.1.1-wei-yu-kuo-pei-chi-jiu-hua","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"},{"label":"3.1 使用 JDBC 读写数据"}]},{"id":"-Lrx2CMAxKTSTa_RKtp6","title":"3.1.2 使用 JdbcTemplate","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.1-shi-yong-jdbc-du-xie-shu-ju/3.1.2-shi-yong-jdbctemplate","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"},{"label":"3.1 使用 JDBC 读写数据"}]},{"id":"-Lrx2CAQSCQSjuNJVKSk","title":"3.1.3 定义模式并预加载数据","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.1-shi-yong-jdbc-du-xie-shu-ju/3.1.3-ding-yi-mo-shi-bing-yu-jia-zai-shu-ju","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"},{"label":"3.1 使用 JDBC 读写数据"}]},{"id":"-Lrx2BgY7ZwwYQMepAKf","title":"3.1.4 插入数据","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.1-shi-yong-jdbc-du-xie-shu-ju/3.1.4-cha-ru-shu-ju","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"},{"label":"3.1 使用 JDBC 读写数据"}]},{"id":"-Lrx1aH9s4l1Qf1d1ovG","title":"3.2 使用 Spring Data JPA 持久化数据","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.2-shi-yong-spring-data-jpa-chi-jiu-hua-shu-ju","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"}]},{"id":"-Lrx49SOB6fQ_m56BQyT","title":"3.2.1 添加 Spring Data JPA 到数据库中","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.2-shi-yong-spring-data-jpa-chi-jiu-hua-shu-ju/3.2.1-tian-jia-spring-data-jpa-dao-shu-ju-ku-zhong","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"},{"label":"3.2 使用 Spring Data JPA 持久化数据"}]},{"id":"-Lrx49EHSrfLPtn0z_pS","title":"3.2.2 注解域作为实体","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.2-shi-yong-spring-data-jpa-chi-jiu-hua-shu-ju/3.2.2-zhu-jie-yu-zuo-wei-shi-ti","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"},{"label":"3.2 使用 Spring Data JPA 持久化数据"}]},{"id":"-Lrx490dkj9d7schX_Tx","title":"3.2.3 声明 JPA repository","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.2-shi-yong-spring-data-jpa-chi-jiu-hua-shu-ju/3.2.3-sheng-ming-jpa-repository","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"},{"label":"3.2 使用 Spring Data JPA 持久化数据"}]},{"id":"-Lrx48blmZ1UoeO2qMLU","title":"3.2.4 自定义 JPA repository","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.2-shi-yong-spring-data-jpa-chi-jiu-hua-shu-ju/3.2.4-zi-ding-yi-jpa-repository","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"},{"label":"3.2 使用 Spring Data JPA 持久化数据"}]},{"id":"-Lrx1v8d7ZZTMLbTi2Gv","title":"3.3 小结","pathname":"/spring-in-action-v5/di-3-zhang-chu-li-shu-ju/3.3-xiao-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 3 章 处理数据"}]},{"id":"-LsGO-Apb4_CtZfT4bhi","title":"第 4 章 Spring 安全","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LsGO5IOfdc6AGSqxtWu","title":"4.1 启用 Spring Security","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.1-qi-yong-spring-security","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"}]},{"id":"-LsGO5B7mSBm0MF3UtW5","title":"4.2 配置 Spring Security","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.2-pei-zhi-spring-security","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"}]},{"id":"-LsGPFXszon94xcp61TV","title":"4.2.1 内存用户存储","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.2-pei-zhi-spring-security/4.2.1-nei-cun-yong-hu-cun-chu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"},{"label":"4.2 配置 Spring Security"}]},{"id":"-LsGPFO6Eb538ByC7NhK","title":"4.2.2 基于 JDBC 的用户存储","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.2-pei-zhi-spring-security/4.2.2-ji-yu-jdbc-de-yong-hu-cun-chu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"},{"label":"4.2 配置 Spring Security"}]},{"id":"-LsGPFD7Zjc1V66CbIpN","title":"4.2.3 LDAP 支持的用户存储","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.2-pei-zhi-spring-security/4.2.3-ldap-zhi-chi-de-yong-hu-cun-chu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"},{"label":"4.2 配置 Spring Security"}]},{"id":"-LsGPEmNjGKYJoJR87xm","title":"4.2.4 自定义用户身份验证","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.2-pei-zhi-spring-security/4.2.4-zi-ding-yi-yong-hu-shen-fen-yan-zheng","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"},{"label":"4.2 配置 Spring Security"}]},{"id":"-LsGO52tqjoFMLc5h5OR","title":"4.3 保护 web 请求","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.3-bao-hu-web-qing-qiu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"}]},{"id":"-LsGQagNjgUYwh1iLxeo","title":"4.3.1 保护请求","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.3-bao-hu-web-qing-qiu/4.3.1-bao-hu-qing-qiu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"},{"label":"4.3 保护 web 请求"}]},{"id":"-LsGQaXFFEkW0m2BduTI","title":"4.3.2 创建用户登录页面","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.3-bao-hu-web-qing-qiu/4.3.2-chuang-jian-yong-hu-deng-lu-ye-mian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"},{"label":"4.3 保护 web 请求"}]},{"id":"-LsGQaJrw7ZWRixYya8B","title":"4.3.3 登出","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.3-bao-hu-web-qing-qiu/4.3.3-deng-chu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"},{"label":"4.3 保护 web 请求"}]},{"id":"-LsGQ_uc-XvcK6xhdEZJ","title":"4.3.4 阻止跨站请求伪造攻击","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.3-bao-hu-web-qing-qiu/4.3.4-zu-zhi-kua-zhan-qing-qiu-wei-zao-gong-ji","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"},{"label":"4.3 保护 web 请求"}]},{"id":"-LsGO4q-eYQCo0x-TBth","title":"4.4 了解你的用户","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.4-le-jie-ni-de-yong-hu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"}]},{"id":"-LsGO4K0knuw3DXS9r3a","title":"4.5 小结","pathname":"/spring-in-action-v5/di-4-zhang-spring-an-quan/4.5-xiao-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 4 章 Spring 安全"}]},{"id":"-LsVLbXKRqrB3fcfHiQJ","title":"第 5 章 使用配置属性","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LsZathR43r6U5X-d0Sz","title":"5.1 微调自动配置","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.1-wei-tiao-zi-dong-pei-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"}]},{"id":"-LsZbR1DpFoZJurOQ7LJ","title":"5.1.1 理解 Spring 环境抽象","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.1-wei-tiao-zi-dong-pei-zhi/5.1.1-li-jie-spring-huan-jing-chou-xiang","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.1 微调自动配置"}]},{"id":"-LsZbQojV70TbH8Kh2Pq","title":"5.1.2 配置数据源","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.1-wei-tiao-zi-dong-pei-zhi/5.1.2-pei-zhi-shu-ju-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.1 微调自动配置"}]},{"id":"-LsZbQdyIO6HyttUXbj0","title":"5.1.3 配置嵌入式服务器","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.1-wei-tiao-zi-dong-pei-zhi/5.1.3-pei-zhi-qian-ru-shi-fu-wu-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.1 微调自动配置"}]},{"id":"-LsZbQRB2JvS81A-UbKy","title":"5.1.4 配置日志","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.1-wei-tiao-zi-dong-pei-zhi/5.1.4-pei-zhi-ri-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.1 微调自动配置"}]},{"id":"-LsZbQ4xXX_5CZgbY_5v","title":"5.1.5 使用特殊的属性值","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.1-wei-tiao-zi-dong-pei-zhi/5.1.5-shi-yong-te-shu-de-shu-xing-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.1 微调自动配置"}]},{"id":"-LsZatPBrt0rmCoq9Cyg","title":"5.2 创建自己的配置属性","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.2-chuang-jian-zi-ji-de-pei-zhi-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"}]},{"id":"-LsZcnFwAFE-P-Dv8gC4","title":"5.2.1 定义配置属性持有者","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.2-chuang-jian-zi-ji-de-pei-zhi-shu-xing/5.2.1-ding-yi-pei-zhi-shu-xing-chi-you-zhe","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.2 创建自己的配置属性"}]},{"id":"-LsZcmtZ2OK-tkBcTLxJ","title":"5.2.2 声明配置属性元数据","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.2-chuang-jian-zi-ji-de-pei-zhi-shu-xing/5.2.2-sheng-ming-pei-zhi-shu-xing-yuan-shu-ju","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.2 创建自己的配置属性"}]},{"id":"-LsZat4__ejS2427dsPw","title":"5.3 使用 profile 文件进行配置","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.3-shi-yong-profile-wen-jian-jin-hang-pei-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"}]},{"id":"-LsZe-vybsWEpHP3Mu9b","title":"5.3.1 定义特定 profile 的属性","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.3-shi-yong-profile-wen-jian-jin-hang-pei-zhi/5.3.1-ding-yi-te-ding-profile-de-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.3 使用 profile 文件进行配置"}]},{"id":"-LsZe-hTV0nRU5WsEImj","title":"5.3.2 激活 profile 文件","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.3-shi-yong-profile-wen-jian-jin-hang-pei-zhi/5.3.2-ji-huo-profile-wen-jian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.3 使用 profile 文件进行配置"}]},{"id":"-LsZe-MjMIgQC8znnaBf","title":"5.3.3 有条件地使用 profile 文件创建 bean","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.3-shi-yong-profile-wen-jian-jin-hang-pei-zhi/5.3.3-you-tiao-jian-di-shi-yong-profile-wen-jian-chuang-jian-bean","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"},{"label":"5.3 使用 profile 文件进行配置"}]},{"id":"-LsZasg48ETo25K8tnVG","title":"5.4 小结","pathname":"/spring-in-action-v5/di-5-zhang-shi-yong-pei-zhi-shu-xing/5.4-xiao-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 5 章 使用配置属性"}]},{"id":"-LstfGQCeql-jmHEGqOA","title":"第二部分 集成 Spring","pathname":"/spring-in-action-v5/di-er-bu-fen-ji-cheng-spring","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LstWkhUiFoUP1ekKaza","title":"第 6 章 创建 REST 服务","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LstWrBgLZ-k4WmzhAeN","title":"6.1 编写 RESTful 控制器","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.1-bian-xie-restful-kong-zhi-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"}]},{"id":"-LstX5cwzNwLifzKfe_K","title":"6.1.1 从服务器获取数据","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.1-bian-xie-restful-kong-zhi-qi/6.1.1-cong-fu-wu-qi-huo-qu-shu-ju","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.1 编写 RESTful 控制器"}]},{"id":"-LstX5VZtvvL6n4PpV64","title":"6.1.2 向服务器发送数据","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.1-bian-xie-restful-kong-zhi-qi/6.1.2-xiang-fu-wu-qi-fa-song-shu-ju","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.1 编写 RESTful 控制器"}]},{"id":"-LstX58houmTjYr5j9uC","title":"6.1.3 更新服务器上的资源","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.1-bian-xie-restful-kong-zhi-qi/6.1.3-geng-xin-fu-wu-qi-shang-de-zi-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.1 编写 RESTful 控制器"}]},{"id":"-LstXwxi_hL9cfENVxVk","title":"6.1.4 从服务器删除数据","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.1-bian-xie-restful-kong-zhi-qi/6.1.4-cong-fu-wu-qi-shan-chu-shu-ju","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.1 编写 RESTful 控制器"}]},{"id":"-LstbvgLyIqn6xUu6QEU","title":"6.2 启用超媒体","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.2-qi-yong-chao-mei-ti","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"}]},{"id":"-LstcKZnQ0ZxbRY5zG9N","title":"6.2.1 添加超链接","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.2-qi-yong-chao-mei-ti/6.2.1-tian-jia-chao-lian-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.2 启用超媒体"}]},{"id":"-LstcKQhZu7QycyUa2GS","title":"6.2.2 创建资源装配器","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.2-qi-yong-chao-mei-ti/6.2.2-chuang-jian-zi-yuan-zhuang-pei-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.2 启用超媒体"}]},{"id":"-LstcK6RdMmBL9vt6p_t","title":"6.2.3 嵌套命名关系","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.2-qi-yong-chao-mei-ti/6.2.3-qian-tao-ming-ming-guan-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.2 启用超媒体"}]},{"id":"-LstdiNzoPTM-dkQbEz1","title":"6.3 启用以数据为中心的服务","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.3-qi-yong-yi-shu-ju-wei-zhong-xin-de-fu-wu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"}]},{"id":"-Lstdt2n0HVXr59AsT0I","title":"6.3.1 调整资源路径和关系名称","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.3-qi-yong-yi-shu-ju-wei-zhong-xin-de-fu-wu/6.3.1-tiao-zheng-zi-yuan-lu-jing-he-guan-xi-ming-cheng","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.3 启用以数据为中心的服务"}]},{"id":"-LstdsnKiap-dRk-KtXH","title":"6.3.2 分页和排序","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.3-qi-yong-yi-shu-ju-wei-zhong-xin-de-fu-wu/6.3.2-fen-ye-he-pai-xu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.3 启用以数据为中心的服务"}]},{"id":"-LstdsDgxZaWe7I1VwAr","title":"6.3.3 添加用户端点","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.3-qi-yong-yi-shu-ju-wei-zhong-xin-de-fu-wu/6.3.3-tian-jia-yong-hu-duan-dian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.3 启用以数据为中心的服务"}]},{"id":"-LsteTCrYaKlDEy3u_bY","title":"6.3.4 向 Spring Data 端点添加用户超链接","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.3-qi-yong-yi-shu-ju-wei-zhong-xin-de-fu-wu/6.3.4-xiang-spring-data-duan-dian-tian-jia-yong-hu-chao-lian-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"},{"label":"6.3 启用以数据为中心的服务"}]},{"id":"-LstetaUIcJm6r-Yb_Rc","title":"6.4 小结","pathname":"/spring-in-action-v5/di-6-zhang-chuang-jian-rest-fu-wu/6.4-xiao-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 6 章 创建 REST 服务"}]},{"id":"-LsyHCf47JC8GxxNNuz3","title":"第 7 章 调用 REST 服务","pathname":"/spring-in-action-v5/di-7-zhang-tiao-yong-rest-fu-wu","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-LsyIPXbTQE6I7xQuLUW","title":"7.1 使用 RestTemplate 调用 REST 端点","pathname":"/spring-in-action-v5/di-7-zhang-tiao-yong-rest-fu-wu/7.1-shi-yong-resttemplate-tiao-yong-rest-duan-dian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 7 章 调用 REST 服务"}]},{"id":"-LsyIjc4rBjXtrOVgm-2","title":"7.1.1 请求 GET 资源","pathname":"/spring-in-action-v5/di-7-zhang-tiao-yong-rest-fu-wu/7.1-shi-yong-resttemplate-tiao-yong-rest-duan-dian/7.1.1-qing-qiu-get-zi-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 7 章 调用 REST 服务"},{"label":"7.1 使用 RestTemplate 调用 REST 端点"}]},{"id":"-LsyIjT4gfql9PaVEcC8","title":"7.1.2 请求 PUT 资源","pathname":"/spring-in-action-v5/di-7-zhang-tiao-yong-rest-fu-wu/7.1-shi-yong-resttemplate-tiao-yong-rest-duan-dian/7.1.2-qing-qiu-put-zi-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 7 章 调用 REST 服务"},{"label":"7.1 使用 RestTemplate 调用 REST 端点"}]},{"id":"-LsyIjG_0lKDTcvLruBL","title":"7.1.3 请求 DELETE 资源","pathname":"/spring-in-action-v5/di-7-zhang-tiao-yong-rest-fu-wu/7.1-shi-yong-resttemplate-tiao-yong-rest-duan-dian/7.1.3-qing-qiu-delete-zi-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 7 章 调用 REST 服务"},{"label":"7.1 使用 RestTemplate 调用 REST 端点"}]},{"id":"-LsyIixxTkEXiQxSAx2a","title":"7.1.4 请求 POST 资源","pathname":"/spring-in-action-v5/di-7-zhang-tiao-yong-rest-fu-wu/7.1-shi-yong-resttemplate-tiao-yong-rest-duan-dian/7.1.4-qing-qiu-post-zi-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 7 章 调用 REST 服务"},{"label":"7.1 使用 RestTemplate 调用 REST 端点"}]},{"id":"-LsyIPHmYevlwpU2KYlz","title":"7.2 使用 Traverson 引导 REST API","pathname":"/spring-in-action-v5/di-7-zhang-tiao-yong-rest-fu-wu/7.2-shi-yong-traverson-yin-dao-rest-api","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 7 章 调用 REST 服务"}]},{"id":"-LsyIOoMVdPUPN7AaSmI","title":"7.3 小结","pathname":"/spring-in-action-v5/di-7-zhang-tiao-yong-rest-fu-wu/7.3-xiao-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 7 章 调用 REST 服务"}]},{"id":"-Lu5slqzCEU3P5JJ5cfs","title":"第 8 章 发送异步消息","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-Lu5suwWFxP_AVVevO3c","title":"8.1 使用 JMS 发送消息","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.1-shi-yong-jms-fa-song-xiao-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"}]},{"id":"-Lu5u5jsriPCCUlgz94U","title":"8.1.3 接收 JMS 消息","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.1-shi-yong-jms-fa-song-xiao-xi/8.1.3-jie-shou-jms-xiao-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.1 使用 JMS 发送消息"}]},{"id":"-Lu5u5PPrNE8qOqL2Sm_","title":"8.1.2 使用 JmsTemplate 发送消息","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.1-shi-yong-jms-fa-song-xiao-xi/8.1.2-shi-yong-jmstemplate-fa-song-xiao-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.1 使用 JMS 发送消息"}]},{"id":"-Lu5u1tsBmZicDjraCMo","title":"8.1.1 设置 JMS","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.1-shi-yong-jms-fa-song-xiao-xi/8.1.1-she-zhi-jms","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.1 使用 JMS 发送消息"}]},{"id":"-Lu5suh271B0NaJr8tM7","title":"8.2 使用 RabbitMQ 和 AMQP","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.2-shi-yong-rabbitmq-he-amqp","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"}]},{"id":"-Lu5uuzGxTwLicET5yd_","title":"8.2.1 添加 RabbitMQ 到 Spring 中","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.2-shi-yong-rabbitmq-he-amqp/untitled-2","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.2 使用 RabbitMQ 和 AMQP"}]},{"id":"-Lu5use9m6VhMVp5uk8C","title":"8.2.2 使用 RabbitTemplate 发送消息","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.2-shi-yong-rabbitmq-he-amqp/untitled-1","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.2 使用 RabbitMQ 和 AMQP"}]},{"id":"-Lu5urwO6-hbv-IURpXo","title":"8.2.3 从 RabbitMQ 接收消息","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.2-shi-yong-rabbitmq-he-amqp/untitled","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.2 使用 RabbitMQ 和 AMQP"}]},{"id":"-Lu5suOGDSrcSB3ptyZ1","title":"8.3 使用 Kafka 发送消息","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.3-shi-yong-kafka-fa-song-xiao-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"}]},{"id":"-Lu5vhzkd31yFO-1yoFu","title":"8.3.1 在 Spring 中设置 Kafka","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.3-shi-yong-kafka-fa-song-xiao-xi/8.3.1-zai-spring-zhong-she-zhi-kafka","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.3 使用 Kafka 发送消息"}]},{"id":"-Lu5viINIJVLhoi70uvE","title":"8.3.2 使用 KafkaTemplate 发送消息","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.3-shi-yong-kafka-fa-song-xiao-xi/8.3.2-shi-yong-kafkatemplate-fa-song-xiao-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.3 使用 Kafka 发送消息"}]},{"id":"-Lu5vhOEbru-aVqXXQyi","title":"8.3.3 编写 Kafka 监听器","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.3-shi-yong-kafka-fa-song-xiao-xi/8.3.3-bian-xie-kafka-jian-ting-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"},{"label":"8.3 使用 Kafka 发送消息"}]},{"id":"-Lu5stK0UVRdcMnEaIyX","title":"8.4 小结","pathname":"/spring-in-action-v5/di-8-zhang-fa-song-yi-bu-xiao-xi/8.4-xiao-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 8 章 发送异步消息"}]},{"id":"-M0q2tUV3m7cHIf0VZ3H","title":"第 9 章 集成 Spring","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-M0q382cljFcICTqC8YU","title":"9.1 声明简单的集成流","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.1-sheng-ming-jian-dan-de-ji-cheng-liu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"}]},{"id":"-M0q42hkkG7UIED0WF3d","title":"9.1.1 使用 XML 定义集成流","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.1-sheng-ming-jian-dan-de-ji-cheng-liu/9.1.1-shi-yong-xml-ding-yi-ji-cheng-liu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.1 声明简单的集成流"}]},{"id":"-M0q42NV5BLaSEaOzM53","title":"9.1.2 在 Java 中配置集成流","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.1-sheng-ming-jian-dan-de-ji-cheng-liu/9.1.2-zai-java-zhong-pei-zhi-ji-cheng-liu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.1 声明简单的集成流"}]},{"id":"-M0q41TbKhG0JldDDBkP","title":"9.1.3 使用 Spring Integration 的 DSL 配置","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.1-sheng-ming-jian-dan-de-ji-cheng-liu/9.1.3-shi-yong-spring-integration-de-dsl-pei-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.1 声明简单的集成流"}]},{"id":"-M0q36rk5GSgqGaecS-e","title":"9.2 探索 Spring Integration","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"}]},{"id":"-M0q59gOHzcCj_GuEen6","title":"9.2.1 消息通道","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.1-xiao-xi-tong-dao","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q59QHlWyZslZba1y4","title":"9.2.2 过滤器","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.2-guo-lv-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q58qkORFaFG4qBFmh","title":"9.2.3 转换器","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.3-zhuan-huan-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q58_dz0nvg6xWX59q","title":"9.2.4 路由","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.4-lu-you","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q58JHvbFbpH5VqToV","title":"9.2.5 分割器","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.5-fen-ge-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q583lFJ2TpGhgCyVE","title":"9.2.6 服务激活器","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.6-fu-wu-ji-huo-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q57Y1fPdru7VcD5J3","title":"9.2.7 网关","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.7-wang-guan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q57rPLLedHYN3Xk49","title":"9.2.8 通道适配器","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.8-tong-dao-kuo-pei-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q56wPtGnrwB71wtzB","title":"9.2.9 端点模块","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.2-tan-suo-spring-integration/9.2.9-duan-dian-mo-kuai","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"},{"label":"9.2 探索 Spring Integration"}]},{"id":"-M0q36XcWaA-cerC7DG6","title":"9.3 创建 Email 集成流","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.3-chuang-jian-email-ji-cheng-liu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"}]},{"id":"-M0q35TVS2pfA80umUJe","title":"9.4 总结","pathname":"/spring-in-action-v5/di-9-zhang-ji-cheng-spring/9.4-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 9 章 集成 Spring"}]},{"id":"-M1xukHSJoDz_lq0kFsi","title":"第三部分 响应式 Spring","pathname":"/spring-in-action-v5/di-san-bu-fen-xiang-ying-shi-spring","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-M1xurl2TyfZosMKlJhk","title":"第 10 章 Reactor 介绍","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-M1xv2vCs8uEGH4ZXY0Q","title":"10.1 理解响应式编程","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.1-li-jie-xiang-ying-shi-bian-cheng","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"}]},{"id":"-M1xv9bo3fcT8aVDa13I","title":"10.1.1 定义响应式流","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.1-li-jie-xiang-ying-shi-bian-cheng/10.1.1-ding-yi-xiang-ying-shi-liu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"},{"label":"10.1 理解响应式编程"}]},{"id":"-M1ygGMBWeCWAVtTZiP3","title":"10.2 Reactor","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.2-reactor","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"}]},{"id":"-M1ygjQq8eN5eKscWMi7","title":"10.2.1 图解响应式流","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.2-reactor/10.2.1-tu-jie-xiang-ying-shi-liu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"},{"label":"10.2 Reactor"}]},{"id":"-M1yhGLIanOzElDHi_yh","title":"10.2.2 添加 Reactor 依赖","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.2-reactor/10.2.2-tian-jia-reactor-yi-lai","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"},{"label":"10.2 Reactor"}]},{"id":"-M3LBg4_7UFggIs1mGw9","title":"10.3 通用响应式操作实战","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.3-tong-yong-xiang-ying-shi-cao-zuo-shi-zhan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"}]},{"id":"-M3LByEq8UHLlDRMXr66","title":"10.3.1 创建响应式类型","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.3-tong-yong-xiang-ying-shi-cao-zuo-shi-zhan/10.3.1-chuang-jian-xiang-ying-shi-lei-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"},{"label":"10.3 通用响应式操作实战"}]},{"id":"-M3LC1qU0-bT5HI8zr1e","title":"10.3.2 响应式类型结合","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.3-tong-yong-xiang-ying-shi-cao-zuo-shi-zhan/10.3.2-xiang-ying-shi-lei-xing-jie-he","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"},{"label":"10.3 通用响应式操作实战"}]},{"id":"-M3LC1gbXkZ3RfQ54nQ9","title":"10.3.3 转换和过滤响应式流","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.3-tong-yong-xiang-ying-shi-cao-zuo-shi-zhan/10.3.3-zhuan-huan-he-guo-lv-xiang-ying-shi-liu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"},{"label":"10.3 通用响应式操作实战"}]},{"id":"-M3LC1Te-TbMqmalv1j6","title":"10.3.4 对反应类型执行逻辑操作","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.3-tong-yong-xiang-ying-shi-cao-zuo-shi-zhan/10.3.4-dui-fan-ying-lei-xing-zhi-hang-luo-ji-cao-zuo","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"},{"label":"10.3 通用响应式操作实战"}]},{"id":"-M3LMz54r-nu5m3IqCTW","title":"10.4 总结","pathname":"/spring-in-action-v5/di-10-zhang-reactor-jie-shao/10.4-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 10 章 Reactor 介绍"}]},{"id":"-M3dJ2gEW33p_Liqnh4-","title":"第 11 章 开发响应式 API","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-M3dJRCEA9BHQPFkkztD","title":"11.1 使用 Spring WebFlux","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.1-shi-yong-spring-webflux","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"}]},{"id":"-M3dKNyj-SB_sRmpcgTp","title":"11.1.1 Spring WebFlux 介绍","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.1-shi-yong-spring-webflux/11.1.1-spring-webflux-jie-shao","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.1 使用 Spring WebFlux"}]},{"id":"-M3dKNeizw80VhaGa3lF","title":"11.1.2 编写响应式 Controller","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.1-shi-yong-spring-webflux/11.1.2-bian-xie-xiang-ying-shi-controller","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.1 使用 Spring WebFlux"}]},{"id":"-M3dJQy6mnQAN3p0UvIK","title":"11.2 定义函数式请求处理程序","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.2-ding-yi-han-shu-shi-qing-qiu-chu-li-cheng-xu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"}]},{"id":"-M3dJQTr6Ip2pn4dwkd6","title":"11.3 测试响应式 Controller","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.3-ce-shi-xiang-ying-shi-jie-kou","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"}]},{"id":"-M3eeRIPTw1qrgqv-go6","title":"11.3.1 测试 GET 请求","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.3-ce-shi-xiang-ying-shi-jie-kou/11.3.1-ce-shi-get-qing-qiu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.3 测试响应式 Controller"}]},{"id":"-M3eeQiI5pxJ9iEv19_1","title":"11.3.2 测试 POST 请求","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.3-ce-shi-xiang-ying-shi-jie-kou/11.3.2-ce-shi-post-qing-qiu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.3 测试响应式 Controller"}]},{"id":"-M3eeQOfZNwkStzaMfUI","title":"11.3.3 使用线上服务器进行测试","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.3-ce-shi-xiang-ying-shi-jie-kou/11.3.3-shi-yong-xian-shang-fu-wu-qi-jin-hang-ce-shi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.3 测试响应式 Controller"}]},{"id":"-M3dJQ9c2d26KElq1-B6","title":"11.4 响应式消费 REST API","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.4-xiang-ying-shi-xiao-fei-rest-api","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"}]},{"id":"-MFxQmmBVB4pPw-o2GCf","title":"11.4.1 通过 GET 方式获取资源","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.4-xiang-ying-shi-xiao-fei-rest-api/11.4.1-tong-guo-get-fang-shi-huo-qu-zi-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.4 响应式消费 REST API"}]},{"id":"-MFxQl9BbokhRGGhhNdu","title":"11.4.2 通过 POST 方式发送资源","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.4-xiang-ying-shi-xiao-fei-rest-api/11.4.2-tong-guo-post-fang-shi-fa-song-zi-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.4 响应式消费 REST API"}]},{"id":"-MWHlXHY3Txedf_xRHqj","title":"11.4.3 删除资源","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.4-xiang-ying-shi-xiao-fei-rest-api/11.4.3-shan-chu-zi-yuan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.4 响应式消费 REST API"}]},{"id":"-MFxQkVSLZgezRGLJRqH","title":"11.4.4 处理请求错误","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.4-xiang-ying-shi-xiao-fei-rest-api/11.4.4-chu-li-qing-qiu-cuo-wu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.4 响应式消费 REST API"}]},{"id":"-MFxQjs3lVLHHLY4crMY","title":"11.4.5 请求转换","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.4-xiang-ying-shi-xiao-fei-rest-api/11.4.5-qing-qiu-zhuan-huan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.4 响应式消费 REST API"}]},{"id":"-M3dJD-ET2WHjFO7wycz","title":"11.5 保护响应式 web API","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.5-bao-hu-xiang-ying-shi-web-api","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"}]},{"id":"-MFxRyBICTCTgTNRNaH4","title":"11.5.1 配置响应式 Web 安全","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.5-bao-hu-xiang-ying-shi-web-api/11.5.1-pei-zhi-xiang-ying-shi-web-an-quan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.5 保护响应式 web API"}]},{"id":"-MFxRxgC7hAa15i1Gvs_","title":"11.5.2 配置响应式用户信息服务","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.5-bao-hu-xiang-ying-shi-web-api/11.5.2-pei-zhi-xiang-ying-shi-yong-hu-xin-xi-fu-wu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"},{"label":"11.5 保护响应式 web API"}]},{"id":"-M3dJDjKWjnvAEJjXFDw","title":"11.6 总结","pathname":"/spring-in-action-v5/di-11-zhang-kai-fa-xiang-ying-shi-api/11.6-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 11 章 开发响应式 API"}]},{"id":"-MFxSengsQpJ47MTEJdC","title":"第 12 章 响应式持久化数据","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MFxStxK8mfLmLSQRsLW","title":"12.1 理解 Spring Data 响应式历程","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.1-li-jie-spring-data-xiang-ying-shi-li-cheng","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"}]},{"id":"-MFxiL2gmBh6x5rZFVgU","title":"12.1.1 Spring Data 响应式精髓","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.1-li-jie-spring-data-xiang-ying-shi-li-cheng/12.1.1-spring-data-xiang-ying-shi-jing-sui","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.1 理解 Spring Data 响应式历程"}]},{"id":"-MFxiNF2XX9ttHc68uw3","title":"12.1.2 在响应式与非响应式之间进行转换","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.1-li-jie-spring-data-xiang-ying-shi-li-cheng/12.1.2-zai-xiang-ying-shi-yu-fei-xiang-ying-shi-zhi-jian-jin-hang-zhuan-huan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.1 理解 Spring Data 响应式历程"}]},{"id":"-MFxiN3Qug7lczDqm9pI","title":"12.1.3 开发响应式库","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.1-li-jie-spring-data-xiang-ying-shi-li-cheng/12.1.3-kai-fa-xiang-ying-shi-ku","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.1 理解 Spring Data 响应式历程"}]},{"id":"-MFxStfolOe94R9koEPM","title":"12.2 使用响应式 Cassandra 库","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.2-shi-yong-xiang-ying-shi-cassandra-ku","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"}]},{"id":"-MFxijho_bbPNVns1o5r","title":"12.2.1 开启 Spring Data Cassandra","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.2-shi-yong-xiang-ying-shi-cassandra-ku/12.2.1-kai-qi-spring-data-cassandra","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.2 使用响应式 Cassandra 库"}]},{"id":"-MFxijUQOojc_XANdEdk","title":"12.2.2 理解 Cassandra 数据模型","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.2-shi-yong-xiang-ying-shi-cassandra-ku/12.2.2-li-jie-cassandra-shu-ju-mo-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.2 使用响应式 Cassandra 库"}]},{"id":"-MFxijFvm5ttCIVJIsS1","title":"12.2.3 Cassandra 持久化实体映射","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.2-shi-yong-xiang-ying-shi-cassandra-ku/12.2.3-cassandra-chi-jiu-hua-shi-ti-ying-she","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.2 使用响应式 Cassandra 库"}]},{"id":"-MFxiiKIjmI1dpNKA4LM","title":"12.2.4 编写响应式 Cassandra 库","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.2-shi-yong-xiang-ying-shi-cassandra-ku/12.2.4-bian-xie-xiang-ying-shi-cassandra-ku","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.2 使用响应式 Cassandra 库"}]},{"id":"-MFxSrY41EzTqNk8Sg07","title":"12.3 编写响应式 MongoDB 库","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.3-bian-xie-xiang-ying-shi-mongodb-ku","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"}]},{"id":"-MFxjKuvWIxmcqF5fyKz","title":"12.3.1 开启Spring Data MongonDB","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.3-bian-xie-xiang-ying-shi-mongodb-ku/12.3.1-kai-qi-spring-data-mongondb","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.3 编写响应式 MongoDB 库"}]},{"id":"-MFxjKeB1xe1F8paWYXT","title":"12.3.2 MongoDB 持久化实体映射","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.3-bian-xie-xiang-ying-shi-mongodb-ku/12.3.2-mongodb-chi-jiu-hua-shi-ti-ying-she","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.3 编写响应式 MongoDB 库"}]},{"id":"-MFxjK0AZyNAMrLaF6ZS","title":"12.3.3 编写响应式 MongoDB 库","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.3-bian-xie-xiang-ying-shi-mongodb-ku/12.3.3-bian-xie-xiang-ying-shi-mongodb-ku","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"},{"label":"12.3 编写响应式 MongoDB 库"}]},{"id":"-MFxSvUuZ7myCsMaf2rT","title":"12.4 总结","pathname":"/spring-in-action-v5/di-12-zhang-xiang-ying-shi-chi-jiu-hua-shu-ju/12.4-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 12 章 响应式持久化数据"}]},{"id":"-MWI8A-hI8fHZxEW7pWc","title":"第四部分 云原生 Spring","pathname":"/spring-in-action-v5/di-si-bu-fen-yun-yuan-sheng-spring","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MWK-XZxClUJM9BLlnTk","title":"第 13 章 服务发现","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MWK-thx1ak9d3nikU23","title":"13.1深入思考微服务","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian/13.1-shen-ru-si-kao-wei-fu-wu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 13 章 服务发现"}]},{"id":"-MWK07fSzXxwlEZBsj4K","title":"13.2 配置服务注册","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian/13.2-pei-zhi-fu-wu-zhu-ce","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 13 章 服务发现"}]},{"id":"-MWK0ei_oEO5XkwGoX_Q","title":"13.2.1 配置 Eureka","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian/13.2-pei-zhi-fu-wu-zhu-ce/13.2.1-pei-zhi-eureka","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 13 章 服务发现"},{"label":"13.2 配置服务注册"}]},{"id":"-MWK0j_xovpSSiOYiUId","title":"13.2.2 扩展 Eureka","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian/13.2-pei-zhi-fu-wu-zhu-ce/13.2.2-kuo-zhan-eureka","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 13 章 服务发现"},{"label":"13.2 配置服务注册"}]},{"id":"-MWK0YPRZNoStaRcwaBU","title":"13.3 注册并发现服务","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian/13.3-zhu-ce-bing-fa-xian-fu-wu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 13 章 服务发现"}]},{"id":"-MWK0xVLcpc93nvDnBIK","title":"13.3.1 配置 Eureka 客户端属性","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian/13.3-zhu-ce-bing-fa-xian-fu-wu/13.3.1-pei-zhi-eureka-ke-hu-duan-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 13 章 服务发现"},{"label":"13.3 注册并发现服务"}]},{"id":"-MWK1CGKXDNqiuqUDr1X","title":"13.3.2 消费服务","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian/13.3-zhu-ce-bing-fa-xian-fu-wu/13.3.2-xiao-fei-fu-wu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 13 章 服务发现"},{"label":"13.3 注册并发现服务"}]},{"id":"-MWK0wlpMy0EZVQYcRxI","title":"13.4 总结","pathname":"/spring-in-action-v5/di-13-zhang-fu-wu-fa-xian/13.4-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 13 章 服务发现"}]},{"id":"-MWK-lmM4pQzQOSVzGcP","title":"第 14 章 配置管理","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MWK2DN54fIrH_R_KdnZ","title":"14.1 共享配置","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.1-fen-xiang-pei-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"}]},{"id":"-MWK2LBMx0o0voQxqToV","title":"14.2 运行配置服务器","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.2-yun-hang-pei-zhi-fu-wu-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"}]},{"id":"-MWK3RMhc5Pirec-J5Ff","title":"14.2.1 启动配置服务器","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.2-yun-hang-pei-zhi-fu-wu-qi/14.2.1-qi-dong-pei-zhi-fu-wu-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"},{"label":"14.2 运行配置服务器"}]},{"id":"-MWK3ZHh64ldWW_dh7mm","title":"14.2.2 填写配置库","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.2-yun-hang-pei-zhi-fu-wu-qi/14.2.2-tian-xie-pei-zhi-ku","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"},{"label":"14.2 运行配置服务器"}]},{"id":"-MWK2Q8ivpvNmrftc_t8","title":"14.3 消费共享的配置","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.3-xiao-fei-fen-xiang-de-pei-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"}]},{"id":"-MWK2aUKRMe-rkEXQm7r","title":"14.4 服务应用程序和特定配置文件的属性","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.4-fu-wu-ying-yong-cheng-xu-he-te-ding-pei-zhi-wen-jian-de-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"}]},{"id":"-MWK3rqSWylGCFSScCDf","title":"14.4.1 服务特定应用程序的属性","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.4-fu-wu-ying-yong-cheng-xu-he-te-ding-pei-zhi-wen-jian-de-shu-xing/14.4.1-fu-wu-te-ding-ying-yong-cheng-xu-de-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"},{"label":"14.4 服务应用程序和特定配置文件的属性"}]},{"id":"-MWK44pxxgFI3Itm4wss","title":"14.4.2 服务配置文件属性","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.4-fu-wu-ying-yong-cheng-xu-he-te-ding-pei-zhi-wen-jian-de-shu-xing/14.4.2-fu-wu-pei-zhi-wen-jian-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"},{"label":"14.4 服务应用程序和特定配置文件的属性"}]},{"id":"-MWK38pz2CxmCMZokC6q","title":"14.5 为配置的属性加密","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.5-wei-pei-zhi-de-shu-xing-jia-mi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"}]},{"id":"-MWK4uT_AfIfrYZHO3TX","title":"14.5.1 在 Git 中加密属性","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.5-wei-pei-zhi-de-shu-xing-jia-mi/14.5.1-zai-git-zhong-jia-mi-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"},{"label":"14.5 为配置的属性加密"}]},{"id":"-MWK4zehLuWPah16Qmys","title":"14.5.2 在 Vault 中存储密码","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.5-wei-pei-zhi-de-shu-xing-jia-mi/14.5.2-zai-vault-zhong-cun-chu-mi-ma","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"},{"label":"14.5 为配置的属性加密"}]},{"id":"-MWK3FjxCaOi4PhcVRAY","title":"14.6 远程刷新配置属性","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.6-yuan-cheng-shua-xin-pei-zhi-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"}]},{"id":"-MWK5FZ5uBOlb43sitRg","title":"14.6.1 手动刷新配置属性","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.6-yuan-cheng-shua-xin-pei-zhi-shu-xing/14.6.1-shou-dong-shua-xin-pei-zhi-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"},{"label":"14.6 远程刷新配置属性"}]},{"id":"-MWK5KiyZtHHfGYEzqsC","title":"14.6.2 自动刷新配置属性","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.6-yuan-cheng-shua-xin-pei-zhi-shu-xing/14.6.2-zi-dong-shua-xin-pei-zhi-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"},{"label":"14.6 远程刷新配置属性"}]},{"id":"-MWK3KhS_M2Bh71vI7y1","title":"14.7 总结","pathname":"/spring-in-action-v5/di-14-zhang-pei-zhi-guan-li/14.7-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 14 章 配置管理"}]},{"id":"-MYVPALH4wu0qmzhm5_L","title":"第 15 章 处理失败和时延","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MYVPPwfq1Zi4T7yx53s","title":"15.1 了解断路器","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.1-le-jie-duan-lu-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"}]},{"id":"-MYVPtxXUTcYFwestLXy","title":"15.2 定义断路器","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.2-ding-yi-duan-lu-qi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"}]},{"id":"-MYVQ4WPg8taG0LuScRG","title":"15.2.1 缓解时延","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.2-ding-yi-duan-lu-qi/15.2.1-huan-jie-shi-yan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"},{"label":"15.2 定义断路器"}]},{"id":"-MYVQFwvS0YXiAl-bmpl","title":"15.2.2 管理断路器阈值","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.2-ding-yi-duan-lu-qi/15.2.2-guan-li-duan-lu-qi-yu-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"},{"label":"15.2 定义断路器"}]},{"id":"-MYVPtduzyj4irFwjWBp","title":"15.3 管理失败事件","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.3-guan-li-shi-bai-shi-jian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"}]},{"id":"-MYVQYFmU-LWh6txFy6I","title":"15.3.1 介绍 Hystrix 面板","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.3-guan-li-shi-bai-shi-jian/15.3.1-jie-shao-hystrix-mian-ban","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"},{"label":"15.3 管理失败事件"}]},{"id":"-MYVQXJItTinVSc3Q2Cr","title":"15.3.2 了解 Hystrix 线程池","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.3-guan-li-shi-bai-shi-jian/15.3.2-le-jie-hystrix-xian-cheng-chi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"},{"label":"15.3 管理失败事件"}]},{"id":"-MYVPtHX4CSADapTq3e_","title":"15.4 聚合多个 Hystrix 流","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.4-ju-he-duo-ge-hystrix-liu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"}]},{"id":"-MYVPsNHE4SlS9Us-FiD","title":"15.5 总结","pathname":"/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.5-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 15 章 处理失败和时延"}]},{"id":"-MYVPrmAZ4Kp5NyVDUck","title":"第五部分 部署Spring","pathname":"/spring-in-action-v5/di-wu-bu-fen-bu-shu-spring","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MYVPOaG3ao7DELQKwmq","title":"第 16 章 使用 SpringBoot Actuator","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MYVRaBvBCZQJ112JFb4","title":"16.1 介绍 Actuator","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.1-jie-shao-actuator","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"}]},{"id":"-MYVS1ZQEDMkjpwnWTBS","title":"16.1.1 配置 Actuator 基本路径","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.1-jie-shao-actuator/16.1.1-pei-zhi-actuator-ji-ben-lu-jing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.1 介绍 Actuator"}]},{"id":"-MYVS-snu6u2cDjb19eM","title":"16.1.2 启用和禁用 Actuator 端点","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.1-jie-shao-actuator/16.1.2-qi-yong-he-jin-yong-actuator-duan-dian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.1 介绍 Actuator"}]},{"id":"-MYVRayAozLvOklVecYW","title":"16.2 使用 Actuator 端点","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.2-xiao-fei-actuator-duan-dian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"}]},{"id":"-MYVSj7vU9KKWlmlQnSt","title":"16.2.1 获取重要的应用程序信息","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.2-xiao-fei-actuator-duan-dian/16.2.1-huo-qu-zhong-yao-de-ying-yong-cheng-xu-xin-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.2 使用 Actuator 端点"}]},{"id":"-MYVShzQC-UBgaMcs6z9","title":"16.2.2 查看配置详细信息","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.2-xiao-fei-actuator-duan-dian/16.2.2-cha-kan-pei-zhi-xiang-xi-xin-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.2 使用 Actuator 端点"}]},{"id":"-MYVShWgXBrGB4WdVL45","title":"16.2.3 查看应用程序活动","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.2-xiao-fei-actuator-duan-dian/16.2.3-cha-kan-ying-yong-cheng-xu-huo-dong","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.2 使用 Actuator 端点"}]},{"id":"-MYVSgLRZC-9GFszO5lr","title":"16.2.4 利用运行时指标","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.2-xiao-fei-actuator-duan-dian/16.2.4-li-yong-yun-hang-shi-zhi-biao","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.2 使用 Actuator 端点"}]},{"id":"-MYVR_HB9Bg6u96moy_C","title":"16.3 自定义 Actuator","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.3-zi-ding-yi-actuator","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"}]},{"id":"-MYVTV0odNNrbR78qBcN","title":"16.3.1 向 /info 端点提供信息","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.3-zi-ding-yi-actuator/16.3.1-xiang-info-duan-dian-ti-gong-xin-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.3 自定义 Actuator"}]},{"id":"-MYVTUnwfUpDve3nXsmp","title":"16.3.2 自定义健康指标","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.3-zi-ding-yi-actuator/16.3.2-zi-ding-yi-jian-kang-zhi-biao","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.3 自定义 Actuator"}]},{"id":"-MYVTUaR0HrBM0g_ZBOK","title":"16.3.3 注册自定义指标","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.3-zi-ding-yi-actuator/16.3.3-zhu-ce-zi-ding-yi-zhi-biao","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.3 自定义 Actuator"}]},{"id":"-MYVTTTw3uvpwkut8Dru","title":"16.3.4 创建自定义端点","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.3-zi-ding-yi-actuator/16.3.4-chuang-jian-zi-ding-yi-duan-dian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"},{"label":"16.3 自定义 Actuator"}]},{"id":"-MYVRdBvyb1dzrHhFqU8","title":"16.4 保护 Actuator","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.4-bao-hu-actuator","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"}]},{"id":"-MYVRcdgag7vD1hfgpsQ","title":"16.5 总结","pathname":"/spring-in-action-v5/di-16-zhang-shi-yong-springboot-actuator/16.5-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 16 章 使用 SpringBoot Actuator"}]},{"id":"-MYVU2Go27lDQ_6NOPds","title":"第 17 章 管理 Spring","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MYVUaBh9I_BKBLSywgq","title":"17.1 使用 SpringBoot Admin","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.1-shi-yong-springboot-admin","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"}]},{"id":"-MYVUt7_jb0aX63aW9kr","title":"17.1.1 创建 Admin 服务端","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.1-shi-yong-springboot-admin/17.1.1-chuang-jian-admin-fu-wu-duan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.1 使用 SpringBoot Admin"}]},{"id":"-MYVUsN40Bjctjad_mAH","title":"17.1.2 注册 Admin 客户端","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.1-shi-yong-springboot-admin/17.1.2-zhu-ce-admin-ke-hu-duan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.1 使用 SpringBoot Admin"}]},{"id":"-MYVUajoayHtVwBBtsno","title":"17.2 深入 Admin 服务端","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.2-shen-ru-admin-fu-wu-duan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"}]},{"id":"-MYVVPpKKxVn9axgE6Bp","title":"17.2.1 查看普通应用程序运行状况和信息","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.2-shen-ru-admin-fu-wu-duan/17.2.1-cha-kan-pu-tong-ying-yong-cheng-xu-yun-hang-zhuang-kuang-he-xin-xi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.2 深入 Admin 服务端"}]},{"id":"-MYVVPYT_QM1uUcGFkq6","title":"17.2.2 观察关键指标","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.2-shen-ru-admin-fu-wu-duan/17.2.2-guan-cha-guan-jian-zhi-biao","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.2 深入 Admin 服务端"}]},{"id":"-MYVVP3SwyzapNN2b0hs","title":"17.2.3 检查环境属性","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.2-shen-ru-admin-fu-wu-duan/17.2.3-jian-cha-huan-jing-shu-xing","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.2 深入 Admin 服务端"}]},{"id":"-MYVVOfCnLBtZizm2zCu","title":"17.2.4 查看并设置 log 级别","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.2-shen-ru-admin-fu-wu-duan/17.2.4-cha-kan-bing-she-zhi-log-ji-bie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.2 深入 Admin 服务端"}]},{"id":"-MYVVNv_aN_Mhnb6W1bZ","title":"17.2.5 监控线程","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.2-shen-ru-admin-fu-wu-duan/17.2.5-jian-kong-xian-cheng","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.2 深入 Admin 服务端"}]},{"id":"-MYVVNb_yEuhVjZ2TZhC","title":"17.2.6 追踪 HTTP 请求","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.2-shen-ru-admin-fu-wu-duan/17.2.6-zhui-zong-http-qing-qiu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.2 深入 Admin 服务端"}]},{"id":"-MYVUb93Jy58iYjnpu8A","title":"17.3 保护 Admin 服务端","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.3-bao-hu-admin-fu-wu-duan","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"}]},{"id":"-MYVWMD_zNodijvMi6bR","title":"17.3.1 在 Admin 服务端中启用登录","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.3-bao-hu-admin-fu-wu-duan/17.3.1-zai-admin-fu-wu-duan-zhong-qi-yong-deng-lu","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.3 保护 Admin 服务端"}]},{"id":"-MYVWLApEFm4xZpfSUkr","title":"17.3.2 使用 Actuator 进行认证","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.3-bao-hu-admin-fu-wu-duan/17.3.2-shi-yong-actuator-jin-hang-ren-zheng","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"},{"label":"17.3 保护 Admin 服务端"}]},{"id":"-MYVUXU_A5vA22ZPTw_J","title":"17.4 总结","pathname":"/spring-in-action-v5/di-17-zhang-guan-li-spring/17.4-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 17 章 管理 Spring"}]},{"id":"-MYVU7fJSIJdOHCyDY4R","title":"第 18 章 使用 JMX 监控 Spring","pathname":"/spring-in-action-v5/di-18-zhang-shi-yong-jmx-jian-kong-spring","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MYVWh75jxwKLg2zVfj9","title":"18.1 使用 Actuator MBean","pathname":"/spring-in-action-v5/di-18-zhang-shi-yong-jmx-jian-kong-spring/18.1-shi-yong-actuator-mbean","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 18 章 使用 JMX 监控 Spring"}]},{"id":"-MYVWgU4WCAjvJmtHat7","title":"18.2 创建自己的 MBean","pathname":"/spring-in-action-v5/di-18-zhang-shi-yong-jmx-jian-kong-spring/18.2-chuang-jian-zi-ji-de-mbean","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 18 章 使用 JMX 监控 Spring"}]},{"id":"-MYVWgF4ZbC3fy109k0A","title":"18.3 发送通知","pathname":"/spring-in-action-v5/di-18-zhang-shi-yong-jmx-jian-kong-spring/18.3-fa-song-tong-zhi","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 18 章 使用 JMX 监控 Spring"}]},{"id":"-MYVWfhKn-CHJeCpExde","title":"18.4 总结","pathname":"/spring-in-action-v5/di-18-zhang-shi-yong-jmx-jian-kong-spring/18.4-zong-jie","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 18 章 使用 JMX 监控 Spring"}]},{"id":"-MYVU7T3hqxs3s6I4mrl","title":"第 19 章 部署 Spring","pathname":"/spring-in-action-v5/di-19-zhang-bu-shu-spring","siteSpaceId":"sitesp_xVKYc","description":""},{"id":"-MYVXSOLzTkXhIN7dCJ2","title":"19.1 权衡部署选项","pathname":"/spring-in-action-v5/di-19-zhang-bu-shu-spring/19.1-quan-heng-bu-shu-xuan-xiang","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 19 章 部署 Spring"}]},{"id":"-MYVXRzRlO_lBc9pEkg8","title":"19.2 构建并部署 WAR 文件","pathname":"/spring-in-action-v5/di-19-zhang-bu-shu-spring/19.2-gou-jian-bing-bu-shu-war-wen-jian","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 19 章 部署 Spring"}]},{"id":"-MYVXRIimDhB9ZNWk6yE","title":"19.3 将 JAR 文件推送到 Cloud Foundry","pathname":"/spring-in-action-v5/di-19-zhang-bu-shu-spring/19.3-jiang-jar-wen-jian-tui-song-dao-cloud-foundry","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 19 章 部署 Spring"}]},{"id":"-MYVXQhDYeva1-rSBiUD","title":"19.4 在 Docker 容器中运行 SpringBoot","pathname":"/spring-in-action-v5/di-19-zhang-bu-shu-spring/19.4-zai-docker-rong-qi-zhong-yun-hang-springboot","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 19 章 部署 Spring"}]},{"id":"-MYVXPhDEL2zgg6zdemX","title":"19.5 终章","pathname":"/spring-in-action-v5/di-19-zhang-bu-shu-spring/19.5-zhong-zhang","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 19 章 部署 Spring"}]},{"id":"-MYVXOj5_Out1Zh6O2AN","title":"19.6 总结","pathname":"/spring-in-action-v5/di-19-zhang-bu-shu-spring/19.6-zhong-zhang","siteSpaceId":"sitesp_xVKYc","description":"","breadcrumbs":[{"label":"第 19 章 部署 Spring"}]}]}