提示
Spring,Spring Boot系列的章节在整理中... 包含实际业务开发中的方方面面...
PS:本来没想写那么多的,没想到梳理了一下知识体系,一发不可收拾; 来时好好的,回不去了... 计划5月份完成大部分。 2022.04.15
相关文章
站在知识体系的视角,基于SpringBoot开发。@pdai
# SpringBoot入门(helloworld,banner,logback,分层设计)
首先,在开始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接口 - 如何统一接口封装
- 在以SpringBoot开发Restful接口时,统一返回方便前端进行开发和封装,以及出现时给出响应编码和信息。
- SpringBoot接口 - 如何对参数进行校验
- 在以SpringBoot开发Restful接口时, 对于接口的查询参数后台也是要进行校验的,同时还需要给出校验的返回信息放到上文我们统一封装的结构中。那么如何优雅的进行参数的统一校验呢?
- SpringBoot接口 - 如何参数校验国际化
- 上文我们学习了如何对SpringBoot接口进行参数校验,但是如果需要有国际化的信息,应该如何优雅处理呢?
- SpringBoot接口 - 如何统一异常处理
- SpringBoot接口如何对异常进行统一封装,并统一返回呢?以上文的参数校验为例,如何优雅的将参数校验的错误信息统一处理并封装返回呢?
- SpringBoot接口 - 如何提供多个版本接口
- 在以SpringBoot开发Restful接口时,由于模块,系统等业务的变化,需要对同一接口提供不同版本的参数实现(老的接口还有模块或者系统在用,不能直接改,所以需要不同版本)。如何更加优雅的实现多版本接口呢?
- SpringBoot接口 - 如何生成接口文档之Swagger技术栈
- SpringBoot开发Restful接口,有什么API规范吗?如何快速生成API文档呢?Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和测试的服务。本文主要介绍OpenAPI规范,以及Swagger技术栈基于OpenAPI规范的集成方案。
- SpringBoot接口 - 如何生成接口文档之集成Smart-Doc
- 上文我们看到可以通过Swagger系列可以快速生成API文档, 但是这种API文档生成是需要在接口上添加注解等,这表明这是一种侵入式方式; 那么有没有非侵入式方式呢, 比如通过注释生成文档? 本文主要介绍非侵入式的方式及集成Smart-doc案例。我们构建知识体系时使用Smart-doc这类工具并不是目标,而是要了解非侵入方式能做到什么程度和技术思路, 最后平衡下来多数情况下多数人还是会选择Swagger+openapi技术栈的。
- SpringBoot接口 - 如何访问外部接口
- 在SpringBoot接口开发中,存在着本模块的代码需要访问外面模块接口或外部url链接的需求, 比如调用外部的地图API或者天气API。那么有哪些方式可以调用外部接口呢?
- SpringBoot接口 - 如何对接口进行加密
- 在以SpringBoot开发后台API接口时,会存在哪些接口不安全的因素呢?通常如何去解决的呢?本文主要介绍API接口有不安全的因素以及常见的保证接口安全的方式,重点实践如何对接口进行签名。
- SpringBoot接口 - 如何保证接口幂等
- 在以SpringBoot开发Restful接口时,如何防止接口的重复提交呢? 本文主要介绍接口幂等相关的知识点,并实践常见基于Token实现接口幂等。
- SpringBoot接口 - 如何实现接口限流之单实例
- 在以SpringBoot开发Restful接口时,当流量超过服务极限能力时,系统可能会出现卡死、崩溃的情况,所以就有了降级和限流。在接口层如何做限流呢? 本文主要回顾限流的知识点,并实践单实例限流的一种思路。
- SpringBoot接口 - 如何实现接口限流之分布式
- 上文中介绍了单实例下如何在业务接口层做限流,本文主要介绍分布式场景下限流的方案,以及什么样的分布式场景下需要在业务层加限流而不是接入层; 并且结合kailing开源的