![](https://img-blog.csdnimg.cn/a42c8c806c4d4c2097f88c9f6cf6dc5d.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring 全家桶
文章平均质量分 77
记录围绕Spring开源项目的学习!
Strive_MY
一枚小小的后端码农
展开
-
【数据篇】SpringBoot 整合 MyBatis-Plus 实现分页查询
基础上使用 MyBatis-Plus 实现分页查询。如果你要实现自己的分页模型可以继承。原创 2023-05-12 16:15:35 · 1398 阅读 · 0 评论 -
【基础篇】SpringBoot 统一接口响应与异常响应处理
**/*** 状态码} }原创 2023-05-08 17:49:50 · 323 阅读 · 0 评论 -
【工具篇】Spring Boot 整合阿里云短信-SMS
通常用于向注册用户和潜在客户发送通知和推广信息,包括促销活动通知、业务推广、新产品宣讲、会员关怀等商品与活动的推广信息,可以增加企业产品曝光率、提高产品和企业的知名度。通常用于影视会员推广、旅游景点介绍、直播电商推广以及各类消费产品的介绍推广等,生动直观的展示,有效吸引目标用户,帮助企业在市场竞争中获取更大的优势。通常用于向注册用户下发系统相关信息,包括升级或维护、服务开通、价格调整、 订单确认、物流动态、消费确认、 支付通知等普通通知短信。向手机号码发送通知类短信,支持通过变量替换实现个性短信定制。原创 2023-04-16 19:45:59 · 2064 阅读 · 0 评论 -
【安全篇】Spring Boot 整合 Spring Authorization Server
**Spring Authorization Server** (以下简称 **SAS**)是 Spring 团队最新开发适配 OAuth 协议的授权服务器项目,旨在**替代**原有的 Spring Security OAuth Server。目前已经发布了 0.3.1 版本,已支持授权码、客户端、刷新、注销等 OAuth 协议。SAS 项目已经迁移至官方正式仓库维护,成为官方的正式子项目。......原创 2022-08-01 17:06:59 · 4636 阅读 · 6 评论 -
【MQ篇】Spring Boot 整合 Kafka 消息队列
写在最前Kafka 入门必读Docker/Docker-Compose 安装 KafkaSpring Boot 整合 KafkaDemo 地址:mingyue-springboot-kafka1.添加依赖<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></depen原创 2022-04-29 11:16:03 · 407 阅读 · 0 评论 -
【工具篇】Spring Boot 邮件推送
写在最前需要先开启发送方邮箱的 SMTP 协议。以 QQ 邮箱为例:登录 QQ 邮箱,点击设置->账户,开启IMAP/SMTP服务,并生成授权码。Spring Boot 整合邮件1.添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dep原创 2022-04-27 09:48:28 · 461 阅读 · 0 评论 -
【日志篇】Spring Boot 整合 ELK 实现日志收集与检索
写在最前Elasticsearch 入门必读Docker安装ELK【数据篇】SpringBoot 整合 Elasticsearch 实践数据搜索引擎整合前务必先看看 【Docker安装ELK】 这篇文章!!!Spring Boot 整合 LogstashDemo 地址:mingyue-springboot-logstash1.添加 logback.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configur原创 2022-04-26 21:29:58 · 3055 阅读 · 0 评论 -
【数据篇】SpringBoot 整合 Elasticsearch 实践数据搜索引擎
写在最前Elasticsearch 入门必读Docker安装ELKSpring Data Elasticsearch 参考文档版本选择Spring Data Release TrainSpring Data ElasticsearchElasticsearchSpring FrameworkSpring Boot2021.1 (Q)4.3.x7.15.25.3.x2.5.x2021.0 (Pascal)4.2.x7.12.05.3.x2.5.x原创 2022-04-26 17:09:51 · 2878 阅读 · 0 评论 -
【工具篇】Spring Boot 整合 Minio OSS 存储服务
写在最前Docker安装MinIOSpring Boot 整合 MinioDemo 地址:mingyue-springboot-minio1.添加依赖<!-- minio 依赖 --><dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.3.9</version原创 2022-04-25 14:37:44 · 1259 阅读 · 0 评论 -
【MQ篇】Spring Boot 整合 RocketMQ 消息队列
写在最前Docker安装RocketMQRocketMQ 入门必读Spring Boot 整合 RocketMQDemo 地址:mingyue-springboot-rocketmq1.添加依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <原创 2022-04-24 20:45:30 · 927 阅读 · 0 评论 -
【MQ篇】Spring Boot Event 观察者设计模式,实现业务解耦
写在最前实际业务开发过程中,业务逻辑可能非常复杂,核心业务 + N个子业务。如果都放到一块儿去做,代码可能会很长,耦合度不断攀升,维护起来也麻烦,甚至头疼。还有一些业务场景不需要在一次请求中同步完成,比如邮件发送、短信发送等。MQ 确实可以解决这个问题,但 MQ 重啊,非必要不提升架构复杂度。针对这些问题,我们了解一下 Spring Event。Spring Event 同步使用Spring Event(Application Event)其实就是一个观察者设计模式,一个 Bean 处理完成任务后希望原创 2022-04-24 10:40:48 · 5790 阅读 · 12 评论 -
【安全篇】Spring Boot 整合 Spring Security 安全框架
安全框架安全框架,简单说是对访问权限进行控制,应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码,系统通过校验用户名和密码来完成认证过程。用户授权:验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角原创 2022-04-22 16:56:26 · 4091 阅读 · 7 评论 -
【监控篇】Spring Boot Admin 监控 Spring Boot 应用健康状况
Spring Boot AdminSpring Boot Admin 是一个开源的社区项目,可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。Spring Boot Admin 可以监控 Spring Boot 单机或集群项目。Spring Boot Admin 为已注册的应用程序提供了丰富的监控运维功能。如下:显示健康状况;显示应用运行时的详细信息,如:JVM 和内存指标等;计数器和测量指标;数据源度量;缓存度量;跟踪和下载日志文件;查看 jvm 系统和环境属性;原创 2022-04-22 10:39:36 · 1574 阅读 · 0 评论 -
【WEB篇】Spring Boot 整合 WebSocket 推送与接受消息
WebSocketWebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 通信协议于2011年被 IETF 定为标准 RFC 6455,并由 RFC7936 补充规范。WebSocket API 也被 W3C 定为标准。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。属性属性描述原创 2022-04-21 17:02:59 · 6762 阅读 · 0 评论 -
【WEB篇】Spring Boot 整合 Webflux
WebFluxSpring WebFlux 是一个异步非阻塞式的 Web 框架,它能够充分利用多核 CPU 的硬件资源去处理大量的并发请求。WebFlux 内部使用的是响应式编程(Reactive Programming),以 Reactor 库为基础, 基于异步和事件驱动,可以让我们在不扩充硬件资源的前提下,提升系统的吞吐量和伸缩性。WebFlux 并不能使接口的响应时间缩短,它仅仅能够提升吞吐量和伸缩性。Spring ReactorSpring Reactor 是一个反应式库,用于根据反应式流规原创 2022-04-21 15:26:19 · 2120 阅读 · 0 评论 -
【缓存篇】Spring Boot Cache 组合 Redis 实践缓存
写在最前本文在 【缓存篇】Spring Boot 整合 Redis 缓存数据 基础上优化 Redis 在 Spring Boot 中缓存实践!Spring Cache 介绍Spring Cache 是 Spring 提供的一整套的缓存解决方案。虽然它本身并没有提供缓存的实现,但是它提供了一整套的接口和代码规范、配置、注解等。Spring Cache 利用了 AOP,实现了基于注解的缓存功能,并且进行了合理的抽象,业务代码不用关心底层是使用了什么缓存框架,只需要简单地加一个注解,就能实现缓存功能了。比原创 2022-04-21 14:17:30 · 1452 阅读 · 0 评论 -
【缓存篇】Spring Boot 整合 Redis 缓存数据
写在最前Docker安装RedisRedis入门必读什么是缓存?在实际的业务场景中,缓存一般和其他数据库搭配使用,用来减轻后端数据库的压力,比如和关系型数据库 MySQL 配合使用。缓存会把 MySQL 中经常被查询的数据缓存起来,比如热点数据,这样当用户来访问的时候,就不需要到 MySQL 中去查询了,而是直接获取缓存数据,从而降低了后端数据库的读取压力。流程图如下所示:Spring Boot 整合 RedisDemo 地址:mingyue-springboot-redis1.添加原创 2022-04-21 10:34:38 · 745 阅读 · 0 评论 -
【日志篇】Spring Boot 日志输出到文件
写在最前在 【数据篇】SpringBoot 整合 MyBatis-Plus 增强 MyBatis ,基友搭配,效率翻倍 Demo 中增加日志输出文件。Demo 地址:mingyue-springboot-mybatis-plus日志输出文件增加配置文件resource 目录下增加 logback-spring.xml<?xml version="1.0" encoding="UTF-8"?><!-- ~ Copyright (c) 2020 mingyue4cloud原创 2022-04-20 17:40:51 · 693 阅读 · 0 评论 -
【数据篇】SpringBoot 整合 MyBatis-Plus 增强 MyBatis ,基友搭配,效率翻倍
写在最前本文在【数据篇】SpringBoot 整合 MyBatis 操作 MySql基础上使用 MyBatis-Plus 增强。MyBatis-PlusMyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。文档地址:https://baomidou.com/pages/24112f/特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无原创 2022-04-20 16:55:48 · 578 阅读 · 0 评论 -
【数据篇】SpringBoot 整合 MyBatis 操作 MySql
写在最前MyBatis 入门必读Docker安装MysqlMySql 准备数据创建表CREATE TABLE `sys_user` ( `user_id` bigint NOT NULL, `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名',原创 2022-04-20 15:57:37 · 499 阅读 · 0 评论 -
【数据篇】SpringBoot Hikari 数据源连接 Mysql
写在最前Mysql入门必读Centos7安装Mysql57Centos7安装mysql8.0Docker安装MysqlHikariCPHiKariCP 是数据库连接池的一个后起之秀,代码非常轻量,并且速度非常的快。已经成为了 SpringBoot 2.0 默认的连接池(官方推荐使用)!其官网有性能测试报告:https://github.com/brettwooldridge/HikariCPSpringBoot 连接 MysqlDemo 地址:mingyue-springboot-mys原创 2022-04-20 11:06:39 · 2758 阅读 · 0 评论 -
【任务篇】Spring Boot 整合 XXL-JOB 实现定时任务
写在最前之前介绍过【任务篇】Spring Boot 内置定时任务 Spring Task 实现定时任务,这次介绍 XXL-JOB 实现定时任务。XXL-JOBXXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。特性1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;3、调度中心HA(中心式):调度采用中心原创 2022-04-20 09:34:29 · 2393 阅读 · 1 评论 -
【任务篇】Spring Boot 使用 @Async 执行异步任务
写在最前异步处理不用阻塞当前线程来等待执行完成,而是允许后续操作,直至其它线程将其执行完成,并回调通知此线程。有些业务逻辑可以不用同步处理,并且执行时间长,多数情况都会使用异步处理,直接返回,提升吞吐量。例如:发送短信、邮件;卡券或优惠券发放;App消息推送;工作流性质的异步任务;Spring Boot 整合异步任务Demo 地址:mingyue-springboot-async1.开启异步任务import org.springframework.boot.SpringApplic原创 2022-04-18 22:06:43 · 716 阅读 · 0 评论 -
【任务篇】Spring Boot 内置定时任务 Spring Task
写在最前定时任务意指:指定时间执行的任务(业务代码)。定时任务的场景非常广泛,比如:清理一些堆积的数据;推送短信、邮件;关闭已结束的活动;积分过期每年结算等等。实现方式JDK 自带 Timer;Quartz 框架;Spring Task;XXL-Job;…Cron 表达式Cron 表达式是一个具有时间含义的字符串,字符串以5个空格隔开,分为6个域,格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时,使用半角逗号 , 隔开取值。每个域可以是确定的取值,也可以原创 2022-04-18 17:05:11 · 1235 阅读 · 0 评论 -
【接口篇】SpringBoot 过滤器与拦截器的浅入浅出
过滤器(Filter)过滤器主要用于对用户请求进行预处理,也可以对响应进行后处理。例如:敏感词处理,在过滤器中定义了一些敏感词,请求内容包含这些敏感词的直接禁止访问。过滤器应用场景过滤黑名单过滤敏感词汇设置字符编码,对非标准编码的请求解码压缩响应信息拦截器(Interceptor)拦截器是一种面向方面/切面编程(AOP Aspect-Oriented Programming),而面向切面就是将多个模块的通用服务进行分离,如权限管理、日志服务,这些通用服务的具体实现是通过拦截器来完成。就是原创 2022-04-18 14:52:36 · 937 阅读 · 0 评论 -
【接口篇】SpringBoot 实现 JSR-303 参数校验
写在最前JSR-303JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation。说白了就是做参数校验。为什么要做参数验证?永远不要相信我们在后端接收到的用户数据,防止用户恶意通过伪造的参数破坏我们的系统。比如绕过前端程序,直接模拟客户端请求,使得我们的系统存在安全隐患。所以,后端必须进行参数校验!解决的问题未使用 Hibernate Validator 时,我们可能会通过以下的方式(大量地使用 if/else 语句嵌套实现)对接口参数进行校验。如果需要校验的参原创 2022-04-16 17:20:20 · 896 阅读 · 0 评论 -
【接口篇】SpringBoot 整合 Swagger3 实现在线 API 文档
写在最前对 Swagger 不了解,或者想整合 Swagger2 的童鞋请点击:【接口篇】SpringBoot 整合 Swagger2 实现在线 API 文档SpringBoot 整合 Swagger31.引入 Swagger3 依赖<!-- 引入Swagger3依赖 --><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-sta原创 2022-04-15 16:21:12 · 837 阅读 · 0 评论 -
【接口篇】SpringBoot 快速实践 RESTful API 架构风格
什么是 RESTful API官网地址:https://restfulapi.cn/REST 是 Representational State Transfer 的缩写,如果一个架构符合 REST 原则,就称它为 RESTful 架构;RESTful 架构可以充分的利用 HTTP 协议的各种功能,是 HTTP 协议的最佳实践;RESTful API 是一种软件架构风格、设计风格,可以让软件更加清晰,更简洁,更有层次,可维护性更好;API 请求HTTP 动词GET: 读取(Read)原创 2022-04-12 20:58:51 · 1295 阅读 · 1 评论 -
【工具篇】Hutool 提高开发效率的工具类 ~
写在最前如果我们自己不能很好的“造轮子”,那就用人家的“轮子”吧~Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。包含组件一个 Java 基础工具类,对文件、流、加密解密、转码、正则、线程、XML 等 JDK 方法进行封装,组成各种 Util 工具类,同时提供以下组件:hutool-aopJDK动态代理封装,提供非IOC下的切面支持hutool-bloo原创 2022-04-11 21:43:40 · 1197 阅读 · 0 评论 -
【基础篇】SpringBoot 妙用 lombok 使代码更加优雅
写在最前ProjectLombok 是一个 Java 库,可以自动插入到编辑器和构建工具中,提高java的性能。–来自 Lombok 官网本文在【基础篇】SpringBoot 配置文件详解代码基础上使用 lombok 优化代码!代码地址mingyue-springboot-base-lombokIDEA 安装 Lombok 插件参考IDEA常用插件推荐安装插件的方式安装 Lombok 插件(IDEA 高版本已经默认安装了 Lombok 插件)。项目也需要引入依赖<!--lombok依赖原创 2022-04-11 18:19:35 · 693 阅读 · 0 评论 -
【基础篇】SpringBoot 配置文件详解
写在最前配置文件新建 Spring Boot 项目后,resources 目录下有一个默认的全局配置文件 application.properties(空文件),Spring Boot 在底层已经自动配置好了默认配置。默认的文件类型是 .properties,我们这边修改为 .yml,原因是 .yml 更加灵活、简洁!自动提示添加如下依赖后,我们在编写自定义配置时就会有属性提示。<dependency> <groupId>org.springframework.b原创 2022-04-11 16:01:07 · 1215 阅读 · 0 评论 -
【基础篇】SpringBoot 自定义 Banner
写在最前我们在启动 Spring Boot 项目时会在控制台打印如下内容(logo 和版本信息): . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / /原创 2022-04-11 10:21:40 · 2364 阅读 · 0 评论 -
【基础篇】IDEA 创建第一个 SpringBoot 应用
写在最前需要先安装 IDEA 与 Maven。快速创建 Spring Boot 应用打开 IDEA , 点击 NEW PROJECT填写项目参数完成后,点击 NEXT选择 Spring Boot 版本与所需依赖项,完成后点击 FINISH生成的项目结构如下:打开 pom.xml 查看刚刚勾选的依赖,如下:<dependency> <groupId>org.springframework.boot</groupId>原创 2022-04-08 15:04:12 · 832 阅读 · 0 评论 -
Spring Boot 入门必读
Spring Boot 是什么众所周知 Spring 应用需要进行大量的配置,各种 XML 配置和注解配置让人眼花缭乱,且极容易出错,因此 Spring 一度被称为“配置地狱”。为了简化 Spring 应用的搭建和开发过程,Pivotal 团队在 Spring 基础上提供了一套全新的开源的框架,它就是 Spring Boot。Spring Boot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。随着近些年来原创 2022-01-31 14:16:30 · 317 阅读 · 0 评论 -
Spring MVC 入门必读
MVC 设计模式MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 Web 应用程序的组件。MVC 模式导致了应用程序的不同方面(输入逻辑、业务逻辑和 UI 逻辑)的分离,同时提供了在这些元素之间的松散耦合。视图层(View):负责格式化数据并把它们呈现给用户,包括数据展示、用户交互、数据验证、界面设计等功能。控制层(Controller):负责接收并转发请求,对请求进行处理后,指定视图并将响应结果发送给客户端。模型层(Model):模型对象拥有最多的处理任务,是应用程序的原创 2022-01-30 14:27:26 · 1082 阅读 · 0 评论 -
Spring 入门必读
写在最前Spring 是 Java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但有些扩展是针对构建 J2EE 平台的 WEB 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进良好的编程习惯。Spring 官网Spring Framework 中文文档Spring 框架特性轻量:Spring 是轻量的,基本的版本大约 2MB。控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依原创 2022-01-29 16:49:40 · 717 阅读 · 0 评论