前言
本书内容很全面,囊括了Spring生态的常用技术,如MVC、持久化、 Redis、定时任务、消息队列、搜索引擎。本书知识讲解由浅到深,循序渐进,从Hello World讲到Spring核心原理;技术讲解深入浅出,总能以“接地气”的例子,把抽象的技术讲述得妙趣横生,把技术学习变得像和朋友聊天 一样轻松愉快。本书的内容设计由易到难,图文并茂,再加上丰富的实例, 可以让初级人员非常轻松地入门。同时,作者对技术独树一帜的理解还可以让中、高级的技术人员受到很多启发。
此手册内容丰富、语言生动,让枯燥的技术变得妙趣横生,涵盖主流框架,整合常用技术与中间件,讲解诸多相关硬核知识
内容概览:
第1章 Spring Boot凭什么成为JVM圈的框架“一哥”
要点:在JVM生态中,Spring占据了大约60%的市场份额;在服务端框架中, Spring Boot+Spring MVC占据了大约80%的市场份额 · Spring Boot自诞生以来,关注度持续上升 · Spring Boot有官方力推和“大厂”背书,未来形势一片大好 · Spring Boot简化了复杂的配置,大大提升了开发效率 · Spring Boot具有优秀的设计思想和强大的功能
第2章 兵马未动,粮草先行——码前准备
要点: Maven介绍及相关概念讲解,如坐标、依赖、继承、构建;Intellij IDEA常用设置,如设置字体、显示行号、自动导入、自定义 工具栏等; Intellij IDEA使用技巧,如历史剪切板、随心搜、自动写代码、重构等;Intellij IDEA比较好用的插件推荐,如Codota、Lombok、Maven Helper等
第3章 牛刀小试——五分钟入门Spring Boot
要点:Spring Boot只需5步就可以搭建一个Web工程;Spring Boot采用Maven的工程结构,它们都遵循“约定优于配置”的 原则; Starters整合了很多常用功能,可以减少大量重复性工作 ;YAML是一种非常简洁、易读写的配置文件格式
第4章 斗转星移,无人能及——Spring MVC
要点:MVC指的是模型(Model)、视图(View)和控制器(Controller); Spring MVC接收参数的4种方式:无注解、@RequestParam、@ PathVariable和@RequestBody; 常用的参数校验注解:@NotEmpty、@Min、@Email和@Past;Spring MVC核心组件DispatcherServlet及处理请求的七步流程 ;Spring MVC 的 3 个 核 心 对 象 : Handler 、 HandlerMapping 和 HandlerAdapter ;通过两个自定义拦截器学习了拦截器的运行原理,了解了多个拦截器 按照先进后出的顺序执行,并通过分析源码进一步验证
第5章 你有REST Style吗
要点:每个开发者都应该懂一点HTTP;报文分为请求报文和响应报文,由起始行、首部和主体组成 ; knife4j是一款非常棒的Swagger增强工具; RESTful风格的接口由URI定位资源,使用HTTP方法操作资源,且URI由 名词组成 ; 所有的URL和URN都是URI ;URL能够定位资源,而URN不能
第6章 与持久化有关的那些事儿
Hibernate与MyBatis没有绝对的好与坏,各有特色;Spring Data JPA与MyBatis Plus都非常强大、好用,能够大幅度地减 少CRUD功能代码的编写; Druid不仅性能强劲,还有非常丰富的监控功能; 事务有ACID特性和4个隔离级别; 脏读、不可重复读、幻读要分清楚 ; 不同的事务传播行为发生异常后,回滚的方式也不尽相同
第7章 出征前送你3个锦囊
要点:单元测试要无副作用、可重复运行、独立且完整;单元测试可以帮助你节省开发成本;异常处理 ;日志很重要,但使用时要遵循一定的规范
第8章 Spring Boot的核心原理
要点:IOC主要有两种实现:依赖查找和依赖注入; IOC的意义在于屏蔽具体的实现,降低代码的耦合度; AOP主要是为了处理横向的公共业务;Spring Boot启动过程的核心在于refreshContext方法; @EnableAutoConfiguration是自动配置的关键; 按需配置依赖于众多的内置条件注解
第9章 互联网应用性能瓶颈的“万金油”——Redis
要点:Redis之所以快,根本原因是基于内存; Redis除了做缓存,还可以做排行榜、社交关系、队列等; Spring Boot通过RedisTemplate来访问Redis; Spring Boot通过RedisTemplate的opsFor方法来操作Redis的各种数据类型 ; 对于一把锁,最重要的是互斥、安全及不死锁; Redis分布式锁的难点在于只释放自己的锁,以及防止过期后其他人获 得自己正在使用的锁
第10章 安全领域的“扛把子”——Spring Security
要点:认证用来核实你是谁,授权用来确定你被允许做什么;Spring Security支持HTTP Basic、HTTP Form、LDAP、OpenID、CAS、 ACL、OAuth 2、SAML、JAAS等多种认证方式;Spring Security支持Bcrypt、LDAP-SHA、MessageDigest、PBKDF2、 Scrypt、Argon2等加密方式 ;Spring Security可以通过配置、注解方式来配置权限,支持Spring EL表达式、RBAC等多种权限配置方式; 我们通过多个实例学习了Spring Security的认证、授权、异常处理 (认证、鉴权)、“记住我”等实用功能
第11章 自律到“令人发指”的定时任务
要点:定时任务适合处理在指定的时间内,按照指定的频率或次数处理的需求; 定时任务有单机和分布式之分:单机的定时任务推荐使用Spring Task;分布式的定时任务方案很多,可根据需要选择; fixedDelay、cron和fixedRate三种调度策略对超时任务的处理略有不 同 ; Quartz的核心概念:Job、JobDetail、Trigger和Scheduler; cron是最常用的触发策略,但不需要我们刻意记忆,只需要我们能通 过图形化工具生成cron表达式即可
第12章 RabbitMQ从哪里来、是什么、能干什么、怎么干
要点:消息队列起源于金融行业;消息队列的核心概念包括生产者、消费者、连接、信道、虚拟主机、 交换器、队列; 消息队列擅长的业务场景包括异步处理、系统解耦、缓冲削峰 ; RabbitMQ有7种工作模式:简单模式、工作队列模式、广播模式、路由 模式、动态路由模式、远程模式、生产者确认模式
第13章 反其道行之的Elasticsearch
要点:搜索引擎分为目录搜索引擎、全文搜索引擎、元搜索引擎、垂直搜索 引擎; Elasticsearch 核 心 对 象 包 括 Index 、 Type 、 Document 、 Field 、 Mapping; Elasticsearch适合做搜索引擎的原因在于倒排索引; Spring Boot 提 供 了 两 种 访 问 Elasticsearch 的 方 式 , 即 ElasticsearchRepository和ElasticsearchRestTemplate ; 将MySQL数据同步到Elasticsearch通常有两种方案,即定时同步和实 时同步。
第14章 项目上线的“最后一公里”——部署与监控
要点:Spring Boot支持两种部署方式,即Jar和War; DevTools可以让项目在修改后自动重启,从而节省一些时间; Spring Boot为我们提供了强大的监控组件Actuator;Spring Boot Admin可以将Actuator的监控指标通过图形化的方式更直 观地呈现出来
第15章 你学习技术的“姿势”对吗
技术的学习离不开看、用、想、写,并且需要长期坚持; “不怕麻烦”是成功的前提 ;别人可以帮助你解决问题,但不能代替你解决问题