♥SpringBoot 知识体系详解♥

提示

Spring,Spring Boot系列的章节在整理中... @pdai

首先,在开始SpringBoot开发时,我们了解一些技术栈背景并通过Hello World级别应用程序开始延伸出SpringBoot入门应用的开发。

  • SpringBoot入门 - SpringBoot 简介
    • 为什么有了SpringFramework还会诞生SpringBoot?简单而言,因为虽然Spring的组件代码是轻量级的,但它的配置却是重量级的;所以SpringBoot的设计策略是通过开箱即用和约定大于配置 来解决配置重的问题的。
  • SpringBoot入门 - 创建第一个Hello world工程
    • 我们了解了SpringBoot和SpringFramework的关系之后,我们可以开始创建一个Hello World级别的项目了。
  • SpringBoot入门 - 对Hello world进行MVC分层
    • 上文中我们创建一个简单的Hello Wold级别的web应用程序,但是存在一个问题,我们将所有代码都放在一个类中的, 这显然是不合理的,那么一个经典的CRUD项目如何分包呢?本文结合常见的MVC分层思路带你学习常见的包结构划分。
  • SpringBoot入门 - 添加内存数据库H2
    • 上文我们展示了通过学习经典的MVC分包结构展示了一个用户的增删查改项目,但是我们没有接入数据库;本文将在上文的基础上,增加一个H2内存数据库,并且通过Spring 提供的数据访问包JPA进行数据查询。
  • SpringBoot入门 - 定制自己的Banner
    • 我们在启动Spring Boot程序时,有SpringBoot的Banner信息,那么如何自定义成自己项目的信息呢?
  • SpringBoot入门 - 添加Logback日志
    • SpringBoot开发中如何选用日志框架呢? 出于性能等原因,Logback 目前是springboot应用日志的标配; 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式。
  • SpringBoot入门 - 配置热部署devtools工具
    • 在SpringBoot开发调试中,如果我每行代码的修改都需要重启启动再调试,可能比较费时间;SpringBoot团队针对此问题提供了spring-boot-devtools(简称devtools)插件,它试图提升开发调试的效率。
  • SpringBoot入门 - 开发中还有哪些常用注解
    • SpringBoot中常用的注解

接着, 站在接口设计和实现的角度,从实战开发中梳理出,关于接口开发的技术要点。

  • SpringBoot接口 - 如何统一接口封装
    • 在以SpringBoot开发Restful接口时,统一返回方便前端进行开发和封装,以及出现时给出响应编码和信息。
  • SpringBoot接口 - 如何对参数进行校验
    • 在以SpringBoot开发Restful接口时, 对于接口的查询参数后台也是要进行校验的,同时还需要给出校验的返回信息放到上文我们统一封装的结构中。那么如何优雅的进行参数的统一校验呢?
  • SpringBoot接口 - 如何参数校验国际化
    • 上文我们学习了如何对SpringBoot接口进行参数校验,但是如果需要有国际化的信息,应该如何优雅处理呢?
  • SpringBoot接口 - 如何统一异常处理
    • SpringBoot接口如何对异常进行统一封装,并统一返回呢?以上文的参数校验为例,如何优雅的将参数校验的错误信息统一处理并封装返回呢?
  • SpringBoot接口 - 如何提供多个版本接口
    • 在以SpringBoot开发Restful接口时,由于模块,系统等业务的变化,需要对同一接口提供不同版本的参数实现(老的接口还有模块或者系统在用,不能直接改,所以需要不同版本)。如何更加优雅的实现多版本接口呢?
  • SpringBoot接口 - 如何生成接口文档
    • SpringBoot开发Restful接口,有什么API规范吗?如何快速生成API文档呢?
  • SpringBoot接口 - 如何访问外部接口
    • 在SpringBoot接口开发中,存在着本模块的代码需要访问外面模块接口或外部url链接的需求, 比如调用外部的地图API或者天气API。那么有哪些方式可以调用外部接口呢?
  • SpringBoot接口 - 如何对接口进行加密
    • 在以SpringBoot开发后台API接口时,会存在哪些接口不安全的因素呢?通常如何去解决的呢?本文主要介绍API接口有不安全的因素以及常见的保证接口安全的方式,重点实践如何对接口进行签名
  • SpringBoot接口 - 如何保证接口幂等
    • 在以SpringBoot开发Restful接口时,如何防止接口的重复提交呢? 本文主要介绍接口幂等相关的知识点,并实践常见基于Token实现接口幂等。
  • SpringBoot接口 - 如何实现接口限流之单实例
    • 在以SpringBoot开发Restful接口时,当流量超过服务极限能力时,系统可能会出现卡死、崩溃的情况,所以就有了降级和限流。在接口层如何做限流呢? 本文主要回顾限流的知识点,并实践单实例限流的一种思路。
  • SpringBoot接口 - 如何实现接口限流之分布式
    • 上文中介绍了单实例下如何在业务接口层做限流,本文主要介绍分布式场景下限流的方案,以及什么样的分布式场景下需要在业务层加限流而不是接入层; 并且结合kailing开源的ratelimiter-spring-boot-starter (opens new window)为例, 学习思路+代码封装+starter封装

接下来,我们学习SpringBoot如何集成数据库,比如MySQL数据库,常用的方式有JPA和MyBatis。

学习完SpringBoot和SQL数据库集成后,我们再学习下NoSQL数据库的开发和集成。

进一步,我们看下SpringBoot集成Socket

开发中常用的还有定时任务,我们看下SpringBoot集成定时任务

SpringBoot集成后端视图

SpringBoot集成监控

  • SpringBoot监控 - 集成acturator监控工具
    • 当SpringBoot的应用部署到生产环境中后,如何监控和管理呢?比如审计日志,监控状态,指标收集等。为了解决这个问题,SpringBoot提供了Actuator。本文主要介绍Spring Boot Actuator及实现案例。
  • SpringBoot监控 - 集成springboot admin监控工具
    • 上文中展示了SpringBoot提供了Actuator对应用进行监控和管理, 而Spring Boot Admin能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。 本文主要介绍springboot admin以及SpringBoot和springboot admin的集成。

SpringBoot进阶

待加入体系

  • Springboot集成sentinel实现接口限流入门 (opens new window)
  • SpringBoot集成文件系统
    • SpringBoot + MinIO
    • SpringBoot + aliyun
    • SpringBoot + TecentCloud
    • SpringBoot + FastDFS
  • SpringBoot集成认证授权
    • SpringBoot + Shiro
    • SpringBoot + Spring Security
      • 常规实现
      • Oauth2
    • SpringBoot + SA-Token
    • SpringBoot + Keycloak
    • SpringBoot + 登录验证码
      • AJ_Captcha
  • SpringBoot集成接口(拓展)
    • SmartDoc
    • magic-api
      • https://juejin.cn/post/6968632716434604068
    • 接口设计和交互工具
      • APIFox
      • PostMan
      • Apizza
  • SpringBoot集成数据库连接池
    • HikariCP
    • Druid
  • SpringBoot集成缓存
    • Spring Cache
    • EHCache
  • SpringBoot集成后端视图
    • Thymeleaf
    • FreeMarker
    • Velocity
    • Mustache
    • JSP
  • SpringBoot集成消息队列
    • ActiveMQ
    • RabbitMQ
    • ZeroMQ
    • Kafka
  • SpringBoot集成日志
    • SpringBoot+ELK
      • https://juejin.cn/post/6844904196672585741
  • SpringBoot集成文档
    • 文件上传
    • Excel导入导出 - POI
    • Excel导入导出 - EasyExcel
    • PDF导出 - Itext
    • Word导出
  • SpringBoot集成通知
    • 邮件
    • 钉钉
    • 微信
    • 短信
  • SpringBoot应用部署
    • 打包成Jar+拓展
    • 打包成war
    • 替换为Jetty
    • Linux VM
    • Windows
    • Docker
    • Docker Compose
    • Jenkins
  • SpringBoot应用安全
    • SpringBoot 配置文件密码
      • https://www.cnblogs.com/kexianting/p/11689289.html
      • https://www.cnblogs.com/ruhuanxingyun/p/12152579.html
    • Druid 密码配置
  • SpringBoot集成其它
    • 支付
    • OPC-UA milo
  • SpringBoot Intergration
    • https://spring.io/projects/spring-integration

联系我

添加@pdai微信

PS:添加时请备注Java全栈,谢谢!