内容简介
JavaEE开发的颠覆者: Spring Boot实战
| | | 作 译 者: | | 出版时间:2016-03 | 千 字 数:675 | | 版 次:01-01 | 页 数:524 | | 开 本:16开 | | 装 帧: | | I S B N :9787121282089 | | | 换 版: | | | 所属分类: >> >> | 纸质书定价:¥89.0
内容简介 在当今Java EE 开发中,Spring 框架是当之无愧的。而Spring Boot 是Spring 主推的基于“习 惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。 本书从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用 Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、 异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 当你学完本书后,你将能使用Spring Boot 解决Java EE 开发中所遇到的绝大多数问题。
| 前言 前 言 我有将平时工作所悟写成博客以记录的习惯,随着逐渐的积累,终于可以形成目前这样一 本实战性的手册。我平时在阅读大量的Spring 相关书籍的时候发现:很多书籍对知识的讲解 一味求全求深,导致读者很难快速掌握某一项技术,且因为求全求深而忽略了佳实践,让读 者云里雾里,甚至半途而废。 所以本书的每个章节的基本架构都是:点睛+实战。 点睛:用简练的语言去描述当前的技术; 实战:对当前技术进行实...... 目 录 部分 点睛Spring 4.x 第1 章 Spring 基础 ............................................................................................................. 2 1.1 Spring 概述 ................................................................................................................. 2 1.1.1 Spring 的简史 .................................................................................................. 2 1.1.2 Spring 概述 ...................................................................................................... 3 1.2 Spring 项目快速搭建 ................................................................................................. 5 1.2.1 Maven 简介 ...................................................................................................... 6 1.2.2 Maven 安装 ...................................................................................................... 6 1.2.3 Maven 的pom.xml ........................................................................................... 7 1.2.4 Spring 项目的搭建 .......................................................................................... 9 1.3 Spring 基础配置 ....................................................................................................... 17 1.3.1 依赖注入 ........................................................................................................ 18 1.3.2 Java 配置 ........................................................................................................ 21 1.3.3 AOP ................................................................................................................ 24 第2 章 Spring 常用配置 .................................................................................................... 30 2.1 Bean 的Scope ........................................................................................................... 30 2.1.1 点睛 ................................................................................................................ 30 2.1.2 示例 ................................................................................................................ 31 2.2 Spring EL 和资源调用.............................................................................................. 33 目 录 ∣ VII 2.2.1 点睛 ................................................................................................................ 33 2.2.2 示例 ................................................................................................................ 33 2.3 Bean 的初始化和销毁 .............................................................................................. 37 2.3.1 点睛 ................................................................................................................ 37 2.3.2 演示 ................................................................................................................ 38 2.4 Profile ........................................................................................................................ 40 2.4.1 点睛 ................................................................................................................ 40 2.4.2 演示 ................................................................................................................ 41 2.5 事件(Application Event) ...................................................................................... 44 2.5.1 点睛 ................................................................................................................ 44 2.5.2 示例 ................................................................................................................ 44 第3 章 Spring 话题 .................................................................................................... 48 3.1 Spring Aware ............................................................................................................. 48 3.1.1 点睛 ................................................................................................................ 48 3.1.2 示例 ................................................................................................................ 49 3.2 多线程 ....................................................................................................................... 51 3.2.1 点睛 ................................................................................................................ 51 3.2.2 示例 ................................................................................................................ 51 3.3 计划任务 ................................................................................................................... 54 3.3.1 点睛 ................................................................................................................ 54 3.3.2 示例 ................................................................................................................ 54 3.4 条件注解@Conditional ............................................................................................ 56 3.4.1 点睛 ................................................................................................................ 56 3.4.2 示例 ................................................................................................................ 57 3.5 组合注解与元注解 ................................................................................................... 60 3.5.1 点睛 ................................................................................................................ 60 3.5.2 示例 ................................................................................................................ 60 3.6 @Enable*注解的工作原理 ...................................................................................... 63 3.6.1 类:直接导入配置类 ............................................................................ 63 3.6.2 第二类:依据条件选择配置类 .................................................................... 64 3.6.3 第三类:动态注册Bean ............................................................................... 65 VIII ∣ Java EE 开发的颠覆者:Spring Boot 实战 3.7 测试 ........................................................................................................................... 66 3.7.1 点睛 ................................................................................................................ 66 3.7.2 示例 ................................................................................................................ 67 第二部分 点睛Spring MVC 4.x 第4 章 Spring MVC 基础 .................................................................................................. 72 4.1 Spring MVC 概述 ..................................................................................................... 73 4.2 Spring MVC 项目快速搭建 ..................................................................................... 74 4.2.1 点睛 ................................................................................................................ 74 4.2.2 示例 ................................................................................................................ 74 4.3 Spring MVC 的常用注解 ......................................................................................... 82 4.3.1 点睛 ................................................................................................................ 82 4.3.2 示例 ................................................................................................................ 83 4.4 Spring MVC 基本配置 ............................................................................................. 87 4.4.1 静态资源映射 ................................................................................................ 88 4.4.2 拦截器配置 .................................................................................................... 89 4.4.3 @ControllerAdvice ........................................................................................ 91 4.4.4 其他配置 ........................................................................................................ 94 4.5 Spring MVC 的配置 ......................................................................................... 98 4.5.1 文件上传配置 ................................................................................................ 98 4.5.2 自定义HttpMessageConverter .................................................................... 101 4.5.3 服务器端推送技术 ...................................................................................... 106 4.6 Spring MVC 的测试 ............................................................................................... 113 4.6.1 点睛 .............................................................................................................. 113 4.6.2 示例 .............................................................................................................. 114 第三部分 实战Spring Boot 第5 章 Spring Boot 基础 ................................................................................................. 122 5.1 Spring Boot 概述 ..................................................................................................... 122 5.1.1 什么是Spring Boot ...................................................................................... 122 目 录 ∣ IX 5.1.2 Spring Boot 核心功能 .................................................................................. 122 5.1.3 Spring Boot 的优缺点 .................................................................................. 124 5.1.4 关于本书的Spring Boot 版本 ..................................................................... 124 5.2 Spring Boot 快速搭建 ............................................................................................. 124 5.2.1 http://start.spring.io ....................................................................................... 124 5.2.2 Spring Tool Suite .......................................................................................... 127 5.2.3 IntelliJ IDEA ................................................................................................ 129 5.2.4 Spring Boot CLI ........................................................................................... 132 5.2.5 Maven 手工构建 .......................................................................................... 134 5.2.6 简单演示 ...................................................................................................... 136 第6 章 Spring Boot 核心 ................................................................................................. 138 6.1 基本配置 ................................................................................................................. 138 6.1.1 入口类和@SpringBootApplication ............................................................. 138 6.1.2 关闭特定的自动配置 .................................................................................. 139 6.1.3 定制Banner ................................................................................................. 139 6.1.4 Spring Boot 的配置文件 .............................................................................. 140 6.1.5 starter pom .................................................................................................... 141 6.1.6 使用xml 配置 .............................................................................................. 143 6.2 外部配置 ................................................................................................................. 143 6.2.1 命令行参数配置 .......................................................................................... 143 6.2.2 常规属性配置 .............................................................................................. 144 6.2.3 类型安全的配置(基于properties) ......................................................... 145 6.3 日志配置 ................................................................................................................. 148 6.4 Profile 配置 ............................................................................................................. 148 实战 .......................................................................................................................... 148 6.5 Spring Boot 运行原理 ............................................................................................. 150 6.5.1 运作原理 ...................................................................................................... 153 6.5.2 核心注解 ...................................................................................................... 154 6.5.3 实例分析 ...................................................................................................... 157 6.5.4 实战 .............................................................................................................. 160 X ∣ Java EE 开发的颠覆者:Spring Boot 实战 第7 章 Spring Boot 的Web 开发 .................................................................................... 170 7.1 Spring Boot 的Web 开发支持 ............................................................................... 170 7.2 Thymeleaf 模板引擎 ............................................................................................... 171 7.2.1 Thymeleaf 基础知识 .................................................................................... 171 7.2.2 与Spring MVC 集成 ................................................................................... 174 7.2.3 Spring Boot 的Thymeleaf 支持 ................................................................. 175 7.2.4 实战 .............................................................................................................. 177 7.3 Web 相关配置 ......................................................................................................... 182 7.3.1 Spring Boot 提供的自动配置 ...................................................................... 182 7.3.2 接管Spring Boot 的Web 配置 .................................................................... 185 7.3.3 注册Servlet、Filter、Listener .................................................................... 186 7.4 Tomcat 配置 ............................................................................................................ 187 7.4.1 配置Tomcat ................................................................................................. 187 7.4.2 代码配置Tomcat ......................................................................................... 188 7.4.3 替换Tomcat ................................................................................................. 190 7.4.4 SSL 配置 ...................................................................................................... 191 7.5 Favicon 配置 ........................................................................................................... 196 7.5.1 默认的Favicon ............................................................................................ 196 7.5.2 关闭Favicon ................................................................................................ 196 7.5.3 设置自己的Favicon .................................................................................... 197 7.6 WebSocket ............................................................................................................... 197 7.6.1 什么是WebSocket ....................................................................................... 197 7.6.2 Spring Boot 提供的自动配置 ...................................................................... 197 7.6.3 实战 .............................................................................................................. 198 7.7 基于Bootstrap 和AngularJS 的现代Web 应用 .................................................... 212 7.7.1 Bootstrap ...................................................................................................... 213 7.7.2 AngularJS ..................................................................................................... 216 7.7.3 实战 .............................................................................................................. 222 第8 章 Spring Boot 的数据访问 ...................................................................................... 233 8.1 引入Docker ............................................................................................................ 237 8.1.1 Docker 的安装 ............................................................................................. 238 目 录 ∣ XI 8.1.2 Docker 常用命令及参数 ............................................................................. 242 8.1.3 下载本书所需的Docker 镜像 .................................................................... 247 8.1.4 异常处理 ...................................................................................................... 247 8.2 Spring Data JPA ...................................................................................................... 248 8.2.1 点睛Spring Data JPA ................................................................................... 248 8.2.2 Spring Boot 的支持 ...................................................................................... 258 8.2.3 实战 .............................................................................................................. 260 8.3 Spring Data REST ................................................................................................... 284 8.3.1 点睛Spring Data REST ............................................................................... 284 8.3.2 Spring Boot 的支持 ...................................................................................... 285 8.3.3 实战 .............................................................................................................. 286 8.4 声名式事务 ............................................................................................................. 297 8.4.1 Spring 的事务机制 ...................................................................................... 297 8.4.2 声名式事务 .................................................................................................. 298 8.4.3 注解事务行为 .............................................................................................. 299 8.4.4 类级别使用@Transactional ......................................................................... 300 8.4.5 Spring Data JPA 的事务支持 ....................................................................... 300 8.4.6 Spring Boot 的事务支持 .............................................................................. 302 8.4.7 实战 .............................................................................................................. 303 8.5 数据缓存Cache ...................................................................................................... 309 8.5.1 Spring 缓存支持 .......................................................................................... 309 8.5.2 Spring Boot 的支持 ...................................................................................... 310 8.5.3 实战 .............................................................................................................. 312 8.5.4 切换缓存技术 .............................................................................................. 319 8.6 非关系型数据库NoSQL ........................................................................................ 320 8.6.1 MongoDB ..................................................................................................... 320 8.6.2 Redis ............................................................................................................. 329 第9 章 Spring Boot 企业级开发 ...................................................................................... 340 9.1 安全控制Spring Security ....................................................................................... 340 9.1.1 Spring Security 快速入门 ............................................................................ 340 9.1.2 Spring Boot 的支持 ...................................................................................... 347 XII ∣ Java EE 开发的颠覆者:Spring Boot 实战 9.1.3 实战 .............................................................................................................. 348 9.2 批处理Spring Batch ............................................................................................... 362 9.2.1 Spring Batch 快速入门 ................................................................................ 362 9.2.2 Spring Boot 的支持 ...................................................................................... 370 9.2.3 实战 .............................................................................................................. 371 9.3 异步消息 ................................................................................................................. 385 9.3.1 企业级消息代理 .......................................................................................... 386 9.3.2 Spring 的支持 .............................................................................................. 386 9.3.3 Spring Boot 的支持 ...................................................................................... 386 9.3.4 JMS 实战 ...................................................................................................... 387 9.3.5 AMQP 实战 ................................................................................................. 391 9.4 系统集成Spring Integration ................................................................................... 395 9.4.1 Spring Integration 快速入门 ........................................................................ 395 9.4.2 Message ........................................................................................................ 395 9.4.3 Channel ......................................................................................................... 395 9.4.4 Message EndPoint ........................................................................................ 398 9.4.5 Spring Integration Java DSL ........................................................................ 400 9.4.6 实战 .............................................................................................................. 400 第10 章 Spring Boot 开发部署与测试 ............................................................................. 407 10.1 开发的热部署 ....................................................................................................... 407 10.1.1 模板热部署 ................................................................................................ 407 10.1.2 Spring Loaded ............................................................................................ 407 10.1.3 JRebel ......................................................................................................... 409 10.1.4 spring-boot-devtools ................................................................................... 413 10.2 常规部署 ............................................................................................................... 413 10.2.1 jar 形式 ....................................................................................................... 413 10.2.2 war 形式 ..................................................................................................... 417 10.3 云部署——基于Docker 的部署 ......................................................................... 419 10.3.1 Dockerfile ................................................................................................... 419 10.3.2 安装Docker ............................................................................................... 421 10.3.3 项目目录及文件 ........................................................................................ 421 目 录 ∣ XIII 10.3.4 编译镜像 .................................................................................................... 423 10.3.5 运行 ............................................................................................................ 424 10.4 Spring Boot 的测试 ............................................................................................... 424 10.4.1 新建Spring Boot 项目 ............................................................................... 425 10.4.2 业务代码 .................................................................................................... 425 10.4.3 测试用例 .................................................................................................... 427 10.4.4 执行测试 .................................................................................................... 429 第11 章 应用监控 ........................................................................................................... 431 11.1 http ......................................................................................................................... 431 11.1.1 新建Spring Boot 项目 ............................................................................... 432 11.1.2 测试端点 .................................................................................................... 432 11.1.3 定制端点 .................................................................................................... 439 11.1.4 自定义端点 ................................................................................................ 440 11.1.5 自定义HealthIndicator .............................................................................. 444 11.2 JMX ....................................................................................................................... 447 11.3 SSH ........................................................................................................................ 449 11.3.1 新建Spring Boot 项目 ............................................................................... 449 11.3.2 运行 ............................................................................................................ 449 11.3.3 常用命令 .................................................................................................... 451 11.3.4 定制登录用户 ............................................................................................ 452 11.3.5 扩展命令 .................................................................................................... 452 第12 章 分布式系统开发 ................................................................................................ 456 12.1 微服务、原生云应用 ........................................................................................... 456 12.2 Spring Cloud 快速入门 ......................................................................................... 457 12.2.1 配置服务 .................................................................................................... 457 12.2.2 服务发现 .................................................................................................... 457 12.2.3 路由网关 .................................................................................................... 457 12.2.4 负载均衡 .................................................................................................... 457 12.2.5 断路器 ........................................................................................................ 458 XIV ∣ Java EE 开发的颠覆者:Spring Boot 实战 12.3 实战 ....................................................................................................................... 458 12.3.1 项目构建 .................................................................................................... 458 12.3.2 服务发现——Discovery(Eureka Server) ............................................. 459 12.3.3 配置——Config(Config Server) ........................................................... 461 12.3.4 服务模块——Person 服务 ........................................................................ 463 12.3.5 服务模块——Some 服务 .......................................................................... 466 12.3.6 界面模块——UI(Ribbon,Feign) .......................................................... 468 12.3.7 断路器监控——Monitor(DashBoard) ................................................. 473 12.3.8 运行 ............................................................................................................ 474 12.4 基于Docker 部署 ................................................................................................. 478 12.4.1 Dockerfile 编写 .......................................................................................... 478 12.4.2 Docker Compose ........................................................................................ 480 12.4.3 Docker-compose.yml 编写 ......................................................................... 481 12.4.4 运行 ............................................................................................................ 483 附录A ............................................................................................................................... 485 A.1 基于JHipster 的代码生成 ..................................................................................... 485 A.2 常用应用属性配置列表 ........................................................................................ 488 | | |
《JavaEE开发的颠覆者:Spring Boot实战》 书籍简介 在当今快速迭代的软件开发领域,效率和敏捷性已成为项目成功的关键。JavaEE(Java Platform, Enterprise Edition)作为企业级应用开发的基石,长期以来以其强大而全面的特性占据着重要地位。然而,传统的JavaEE开发模式,往往伴随着繁琐的配置、冗长的XML文件以及相对陡峭的学习曲线,这在一定程度上制约了开发效率的提升。 正是在这样的背景下,Spring Boot应运而生,它以“约定大于配置”的理念,极大地简化了Spring应用的搭建和配置过程,让开发者能够更专注于业务逻辑的实现,而非底层框架的调优。本书《JavaEE开发的颠覆者:Spring Boot实战》,正是旨在为广大Java开发者,特别是那些深耕于JavaEE领域,渴望拥抱更高效、更现代开发模式的工程师们,提供一套全面、深入且极具实践指导意义的学习路线。 本书的价值与特色 本书并非仅仅罗列Spring Boot的API,而是从JavaEE开发者的视角出发,系统性地解析Spring Boot如何“颠覆”传统的开发模式,并提供一套完整的实战方法论。我们深知,对于经验丰富的JavaEE开发者而言,理解Spring Boot不仅仅是学习新的工具,更是理解一种新的思维方式和开发哲学。 1. 颠覆式创新:从JavaEE到Spring Boot的思维转变 本书将首先着重剖析Spring Boot的核心理念,它如何通过自动化配置、内嵌Web服务器、起步依赖等机制,显著降低Spring应用的开发门槛。我们将通过对比分析,展示Spring Boot在简化项目搭建、减少 boilerplate code(样板代码)以及加速开发周期方面的优势,帮助读者建立起“约定大于配置”和“零配置”的开发思维。 2. 全面覆盖:Spring Boot核心特性深度解析 本书将深入讲解Spring Boot的方方面面,包括但不限于: 起步依赖(Starters): 学习如何利用起步依赖快速引入项目所需的功能模块,避免手动管理大量的依赖库。 自动配置(Auto-configuration): 理解Spring Boot如何根据项目依赖自动配置Bean,减少手动配置的工作量。 内嵌Web服务器: 掌握如何使用内嵌的Tomcat、Jetty或Undertow,实现应用程序的快速部署和独立运行。 外部化配置(Externalized Configuration): 学习如何通过属性文件、环境变量、命令行参数等多种方式管理应用程序的配置,实现环境隔离和灵活部署。 Spring Boot Actuator: 深入探索Actuator提供的健康检查、指标监控、应用信息等功能,为生产环境的应用运维提供有力支持。 Spring Boot CLI: 介绍命令行接口(CLI)如何进一步提升开发效率,快速创建、运行和测试Spring Boot应用。 3. 实战为王:从入门到精通的循序渐进 本书的精髓在于其强大的实战性。我们并非空谈理论,而是通过一系列精心设计的案例,引导读者一步步构建功能完善的企业级应用。 基础项目构建: 从零开始,搭建一个简单的Spring Boot Web应用,熟悉基本的开发流程。 数据访问层: 整合MyBatis、JPA等持久化框架,演示Spring Boot如何简化数据库操作。 Web开发: 学习使用Spring MVC结合Spring Boot进行RESTful API开发,构建前后端分离的应用。 安全控制: 集成Spring Security,实现用户认证、授权和访问控制。 消息队列: 整合RabbitMQ、Kafka等消息中间件,构建异步通信和解耦的分布式系统。 微服务架构: 逐步引导读者构建基于Spring Boot的微服务应用,学习服务注册与发现(Eureka/Consul)、API网关(Zuul/Spring Cloud Gateway)、熔断器(Hystrix/Resilience4j)等关键技术。 分布式事务: 探讨在微服务场景下处理分布式事务的挑战与解决方案。 容器化部署: 学习如何将Spring Boot应用打包成Docker镜像,并进行Kubernetes等容器编排平台的部署。 4. 深入剖析:理解Spring Boot背后的设计哲学 本书不仅教你“怎么做”,更重要的是让你理解“为什么这么做”。我们将深入Spring Boot的设计原理,例如其对Spring Framework的封装和扩展,以及如何利用Java的反射、注解等特性实现自动化。理解这些底层机制,将有助于读者在遇到问题时,能够触类旁通,更有效地进行问题排查和性能优化。 5. 现代JavaEE开发的未来图景 Spring Boot是现代JavaEE开发不可或缺的一部分,本书旨在帮助读者掌握这项核心技术,从而在以下方面获得显著提升: 提高开发效率: 快速搭建项目,减少重复劳动,将更多精力投入到业务创新。 简化系统复杂度: 通过约定优于配置,降低理解和维护成本。 拥抱微服务: 为构建可扩展、高可用的微服务架构奠定坚实基础。 快速迭代: 适应敏捷开发的需求,缩短产品上市周期。 提升职业竞争力: 掌握当前最热门和最实用的Java开发技术。 目标读者 本书适合以下人群阅读: JavaEE开发者: 期望将现有JavaEE项目迁移或重构为Spring Boot,提升开发效率和现代化水平的开发者。 初级Java开发者: 希望快速入门企业级Java开发,并掌握主流框架的开发者。 具有一定Java基础但对Spring Boot不甚了解的开发者: 希望系统学习Spring Boot,并将其应用于实际项目中的开发者。 技术管理者和架构师: 希望了解Spring Boot的优势,以便为团队技术选型和项目规划提供参考。 如何阅读本书 本书内容由浅入深,理论与实践相结合。建议读者在阅读过程中,结合实际的代码示例进行操作和验证。每一章节都旨在解决一个或一组与Spring Boot开发相关的问题,通过循序渐进的学习,读者将能够全面掌握Spring Boot的强大能力,并将其灵活应用于各种复杂的企业级应用开发场景。 《JavaEE开发的颠覆者:Spring Boot实战》将是你迈向更高效、更现代化JavaEE开发之旅的理想伴侣。它将赋能你,让你成为这个快速变化的技术浪潮中的弄潮儿。
在收到《包邮 JavaEE开发的颠覆者: Spring Boot实战》这本书之前,我对Spring Boot的认知还停留在“一个能快速开发Java应用的框架”这个模糊的概念上。但当我翻开这本书,我才真正意识到Spring Boot的强大和灵活。作者的讲解非常有条理,从基础的入门到高级的进阶,每一步都衔接得非常自然。他不仅详细介绍了Spring Boot的核心组件,还重点讲解了如何利用Spring Boot来解决Java EE开发中的痛点。我特别喜欢书中关于Spring Boot与云原生技术结合的部分,这对于我理解和实践微服务架构非常有帮助。书中还涉及到了单元测试和集成测试的编写,这对于保证代码质量和应用的稳定性至关重要。而且,作者还分享了很多他在实际开发中遇到的问题和解决方案,这些经验性的内容对于新手来说,简直是无价之宝。读完这本书,我感觉自己对Java EE开发有了一个全新的认识,不再是被动地去学习某个框架,而是能够主动地去运用Spring Boot的强大功能来构建出更优秀、更具竞争力的应用程序。