百万年薪大佬甩出的 SpringBoot 趣味实战手册,GitHub 标星 81.6K
前言
本书内容很全面,囊括了 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 章 你学习技术的“姿势”对吗
技术的学习离不开看、用、想、写,并且需要长期坚持; “不怕麻烦”是成功的前提 ;别人可以帮助你解决问题,但不能代替你解决问题


Ps:由于篇幅限制,手册无法全部为大家展示出来,就以截图主要内容的形式让大家参考啦,需要完整版的小伙伴——【戳一戳】即可免费领取~
评论