深入浅出Spring Boot 2.x 作者:杨开振

深入浅出Spring Boot 2.x 作者:杨开振

深入浅出Spring Boot 2.x 出版社:人民邮电出版社

深入浅出Spring Boot 2.x 内容简介

深入浅出Spring Boot 2.x 目录

深入浅出Spring Boot 2.x 精彩文摘

Spring框架是Java EE开发的强有力的工具和事实标准,而Spring Boot采用“约定优于配置”的原则简化了Spring的开发,从而成为业界流行的微服务开发框架,已经被越来越多的企业采用。2018年3月Spring Boot的版本正式从1.x升级到了2.x,为了适应新潮流,本书将对Spring Boot 2.x技术进行深入讲解。本书从一个很简单的工程开始讲解Spring Boot企业级开发,其内容包含全注解下的Spring IoC和AOP、数据库编程(JDBC、JPA和MyBatis)、数据库事务、NoSQL(Redis和MongoDB)技术、Spring MVC、Spring 5新一代响应式框架WebFlux、互联网抢购业务、部署与监控、REST风格和Spring Cloud分布式开发等。本书内容紧扣互联网企业的实际要求,从全注解下Spring知识讲到Spring Boot的企业级开发,对于Java开发人员,尤其是初学Spring Boot的人员和需要从传统Spring转向Spring Boot开发的技术人员,具有很高的参考价值。第1章 Spring Boot来临1.1 Spring的历史1.2 注解还是XML1.3 Spring Boot的优点1.4 传统Spring MVC和Spring Boot的对比第2章 聊聊开发环境搭建和基本开发2.1 搭建Spring Boot开发环境2.1.1 搭建Eclipse开发环境2.1.2 搭建IntelliJ IDEA开发环境2.2 Spring Boot的依赖和自动配置2.3 使用自定义配置2.4 开发自己的Spring Boot项目第3章 全注解下的Spring IoC3.1 IoC容器简介3.2 装配你的Bean3.2.1 通过扫描装配你的Bean3.2.2 自定义第三方Bean3.3 依赖注入3.3.1 注解@Autowired3.3.2 消除歧义性——@Primary和@Quelifier3.3.3 带有参数的构造方法类的装配3.4 生命周期3.5 使用属性文件3.6 条件装配Bean3.7 Bean的作用域3.8 使用@Profile3.9 引入XML配置Bean3.10 使用Spring EL第4章 开始约定编程——Spring AOP4.1 约定编程4.1.1 约定4.1.2 ProxyBean的实现4.1.3 总结4.2 AOP的概念4.2.1 为什么使用AOP4.2.2 AOP 术语和流程4.3 AOP开发详解4.3.1 确定连接点4.3.2 开发切面4.3.3 切点定义4.3.4 测试AOP4.3.5 环绕通知4.3.6 引入4.3.7 通知获取参数4.3.8 织入4.4 多个切面第5章 访问数据库5.1 配置数据源5.1.1 启动默认数据源5.1.2 配置自定义数据源5.2 使用JdbcTemplate操作数据库5.3 使用JPA(Hibernate)操作数据5.3.1 概述5.3.2 开发JPA5.4 整合MyBatis框架5.4.1 MyBatis简介5.4.2 MyBatis的配置5.4.3 Spring Boot整合MyBatis5.4.4 MyBatis的其他配置第6章 聊聊数据库事务处理6.1 JDBC的数据库事务6.2 Spring声明式事务的使用6.2.1 Spring声明式数据库事务约定6.2.2 @Transactional的配置项6.2.3 Spring事务管理器6.2.4 测试数据库事务6.3 隔离级别6.3.1 数据库事务的知识6.3.2 详解隔离级别6.4 传播行为6.4.1 传播行为的定义6.4.2 测试传播行为6.5 @Transactional自调用失效问题第7章 使用性能利器——Redis7.1 spring-data-redis项目简介7.1.1 spring-data-redis项目的设计7.1.2 RedisTemplate7.1.3 Spring对Redis数据类型操作的封装7.1.4 SessionCallback和RedisCallback接口7.2 在Spring Boot中配置和使用Redis7.2.1 在Spring Boot中配置Redis7.2.2 操作Redis数据类型7.3 Redis的一些特殊用法7.3.1 使用Redis事务7.3.2 使用Redis流水线7.3.3 使用Redis发布订阅7.3.4 使用Lua脚本7.4 使用Spring缓存注解操作Redis7.4.1 缓存管理器和缓存的启用7.4.2 开发缓存注解7.4.3 测试缓存注解7.4.4 缓存注解自调用失效问题7.4.5 缓存脏数据说明7.4.6 自定义缓存管理器第8章 文档数据库——MongoDB8.1 配置MongoDB8.2 使用MongoTemplate实例8.2.1 搭建开发环境8.2.2 使用MongoTemplate操作文档8.3 使用JPA8.3.1 基本用法8.3.2 使用自定义查询第9章 初识Spring MVC9.1 Spring MVC框架的设计9.2 Spring MVC流程9.3 定制Spring MVC的初始化9.4 Spring MVC实例9.4.1 开发控制器9.4.2 视图和视图渲染第10章 深入Spring MVC开发10.1 处理器映射10.2 获取控制器参数10.2.1 在无注解下获取参数10.2.2 使用@RequestParam获取参数10.2.3 传递数组10.2.4 传递JSON10.2.5 通过URL传递参数10.2.6 获取格式化参数10.3 自定义参数转换规则10.3.1 处理器获取参数逻辑10.3.2 一对一转换器(Converter)10.3.3 GenericConverter集合和数组转换10.4 数据验证10.4.1 JSR-303 验证10.4.2 参数验证机制10.5 数据模型10.6 视图和视图解析器10.6.1 视图设计10.6.2 视图实例——导出PDF文件10.7 文件上传10.7.1 Spring MVC对文件上传的支持10.7.2 开发文件上传功能10.8 拦截器10.8.1 拦截器的设计10.8.2 开发拦截器10.8.3 多个拦截器的顺序10.9 国际化10.9.1 国际化消息源10.9.2 国际化解析器10.9.3 国际化实例——SessionLocaleResolver10.10 Spring MVC拾遗10.10.1 @ResponseBody转换为JSON的秘密10.10.2 重定向10.10.3 操作会话对象10.10.4 给控制器增加通知10.10.5 获取请求头参数第11章 构建REST风格网站11.1 REST简述11.1.1 REST名词解释11.1.2 HTTP的动作11.1.3 REST风格的一些误区11.2 使用Spring MVC开发REST风格端点11.2.1 Spring MVC整合REST11.2.2 使用Spring开发REST风格的端点11.2.3 使用@RestController11.2.4 渲染结果11.2.5 处理HTTP状态码、异常和响应头11.3 客户端请求RestTemplate11.3.1 使用RestTemplate请求后端11.3.2 获取响应头、状态码和资源交换第12章 安全——Spring Security12.1 概述和简单安全认证12.2 使用WebSecurityConfigurerAdapter自定义12.3 自定义用户服务信息12.3.1 使用内存签名服务12.3.2 使用数据库定义用户认证服务12.3.3 使用自定义用户认证服务12.4 限制请求12.4.1 配置请求路径访问权限12.4.2 使用Spring表达式配置访问权限12.4.3 强制使用HTTPS12.4.4 防止跨站点请求伪造12.5 用户认证功能12.5.1 自定义登录页面12.5.2 启用HTTP Basic认证12.5.3 登出第13章 学点Spring其他的技术13.1 异步线程池13.1.1 定义线程池和开启异步可用13.1.2 异步实例13.2 异步消息13.2.1 JMS实例——ActiveMQ13.2.2 使用AMQP——RabbitMQ13.3 定时任务13.4 WebSocket 应用13.4.1 开发简易的WebSocket服务13.4.2 使用STOMP第14章 Spring 5新框架——WebFlux14.1 基础概念14.1.1 响应式编程的宣言14.1.2 Reactor模型14.1.3 Spring WebFlux的概述14.1.4 WebHandler接口和运行流程14.2 通过Spring MVC方式开发WebFlux服务端14.2.1 开发持久层14.2.2 开发服务层14.2.3 开发控制层14.2.4 配置服务14.2.5 客户端开发——WebClient14.3 深入WebFlux服务端开发14.3.1 类型转换器——Converter14.3.2 验证器——Validator14.3.3 访问静态资源14.4 深入客户端开发14.4.1 处理服务端错误和转换14.4.2 设置请求头14.5 使用路由函数方式开发WebFlux14.5.1 开发处理器14.5.2 开发请求路由14.5.3 使用过滤器第15章 实践一下——抢购商品15.1 设计与开发15.1.1 数据库表设计15.1.2 使用MyBatis开发持久层15.1.3 使用Spring开发业务层和控制层15.1.4 测试和配置15.2 高并发开发15.2.1 超发现象15.2.2 悲观锁15.2.3 乐观锁15.2.4 使用Redis处理高并发第16章 部署、测试和监控16.1 部署和运行16.1.1 打包16.1.2 运行项目16.1.3 热部署16.2 测试16.2.1 构建测试类16.2.2 使用随机端口和REST风格测试16.2.3 Mock测试16.3 Actuator监控端点16.4 HTTP监控16.4.1 查看敏感信息16.4.2 shutdown端点16.4.3 配置端点16.4.4 自定义端点16.4.5 健康指标项16.5 JMX监控第17章 分布式开发——Spring Cloud17.1 服务治理和服务发现——Eureka17.1.1 配置服务治理节点17.1.2 服务发现17.1.3 配置多个服务治理中心节点17.2 微服务之间的调用17.2.1 Ribbon客户端负载均衡17.2.2 Feign声明式调用17.3 断路器——Hystrix17.3.1 使用降级服务17.3.2 启用Hystrix仪表盘17.4 路由网关——Zuul17.4.1 构建Zuul网关17.4.2 使用过滤器17.5 使用@SpringCloudApplication附录 Spring Boot知识点补充A.1 选择内嵌服务器A.2 修改商标A.3 深入Spring Boot自动装配第1章 Spring Boot来临当今许多互联网企业采用Java EE的技术开发自己的后端服务器,其原因在于Java语言的简单、安全、支持多线程、高性能和多年Java EE的技术积累,能够快速、安全、高性能地构建互联网项目。而如果你身处于Java EE的领域,那么你一定听过Spring的大名,它是当今Java EE开发的事实标准,也是绝大部分企业构建Java EE应用的基础。开启Spring Boot讲解之前,让我们先回顾Spring Framework的历史。1.1 Spring的历史在Spring框架没有开发出来时,Java EE是以Sun公司(已经被Oracle公司收购,不复存在,但为了纪念其对Java发展进程的巨大影响力,全书还是保留其名称,以表致敬之意)所制定的EJB(Enterprise Java Bean)作为标准的。在“遥远”的EJB年代,开发一个EJB需要大量的接口和配置文件,直至EJB 2.0的年代,开发一个EJB还需要配置两个文件,其结果就是配置的工作量比开发的工作量还要大。其次EJB是运行在EJB容器中的,而Sun公司定义的JSP和Servlet却是运行在Web容器中的,于是你可以想象得到,你需要使用Web容器去调用EJB容器的服务。这就意味着存在以下的弊端:需要增加调用的配置文件才能让Web容器调用EJB容器;与此同时需要开发两个容器,非常多的配置内容和烦琐的规范导致开发效率十分低下,这非常让当时的开发者诟病;对于Web容器调用EJB容器的服务这种模式,注定了需要通过网络传递,造成性能不佳;对于测试人员还需要了解许多EJB烦琐的细节,才能进行配置和测试,这样测试也难以进行。

类似文章

发表回复

您的电子邮箱地址不会被公开。