![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot
文章平均质量分 81
学习SpringBoot知识
sco5282
这个作者很懒,什么都没留下…
展开
-
【Redis】Redis 的学习教程(七)之 SpringBoot 集成 Redis
为了可读性,可以使用类,但有一个要求:key、value 都要求是 String 类型。但这就有一个问题,我们平时用得对象比较多,那又如何存储对象呢?@Override存 Redis 之前,将 Java 对象转换为 Json 字符串;读取后,将 Json 字符串转换为 Java 对象。这样做确实可行,但是,如果要存储的对象较多的话,那岂不是要重复地将 Java 对象转换为 Json 字符串?这样是不是很繁琐?继续看源码,发现被注入的被注解修饰:如果 Spring 容器中有了。原创 2023-08-31 11:38:32 · 2071 阅读 · 1 评论 -
【限流】4 种常见的限流实现方案
自定义一个限流用的注解,后面在需要限流的方法或接口上面只需添加该注解即可// 限制类型 String limitType();// 每秒 5 个请求 double limitCount() default 5d;// 限制类型 String resourceName();// 每秒 5 个 int limitCount() default 5;原创 2023-07-22 16:44:37 · 2663 阅读 · 0 评论 -
【限流】4 种常见的限流算法
在大多数的微服务架构在设计之初,比如在技术选型阶段,架构师会从一个全局的视角去规划技术栈的组合,比如结合当前产品的现状考虑是使用 dubbo?还是 springcloud?作为微服务治理的底层框架。甚至为了满足快速的上线、迭代和交付,直接以 springboot 为基座进行开发,后续再引入新的技术栈等…所以在谈论某个业务场景具体的技术解决方案时不可一概而论,而是需要结合产品和业务的现状综合评估,以限流来说,在下面的不同的技术架构下具体在选择的时候可能也不一样固定窗口算法滑动窗口算法令牌桶算法。原创 2023-07-20 11:07:32 · 1641 阅读 · 0 评论 -
【Sa-Token】SpringBoot 整合 Sa-Token 快速实现 API 接口签名安全校验
/ 参加完活动后,发送余额 Long userId = 1L;// 计算 sign String sign = md5("money=" + money + "&userId=" + userId + "&key=" + secretKey);注意:此处计算签名时,需要将所有参数按照字典顺序依次排列(key除外,挂在最后面)原创 2023-07-14 11:33:28 · 2877 阅读 · 0 评论 -
【重试】Java 中的 7 种重试机制
如果是基于 Spring 的项目,使用 Spring Retry 的注解方式已经可以解决大部分问题如果项目没有使用 Spring 相关框架,则适合使用 Google guava-retrying:自成体系,使用起来更加灵活强大【转载】Java重试机制Java教程:重试实现高可用一览。原创 2023-06-28 15:05:37 · 9517 阅读 · 5 评论 -
【SpringBoot】7 种实现 HTTP 调用的方式
作者在工作中,遇到一些需要调用三方接口的任务,就需要用到 HTTP 调用工具。原创 2023-06-21 10:16:20 · 8048 阅读 · 0 评论 -
【定时任务】Java 中 8 种定时任务
1、Timer类是 JDK1.3 专门提供的定时器工具,用来在执行指定任务,需要跟TimerTask一起配合使用工作流程:把 任务TimerTask添加到 任务队列TaskQueue中,由异步无限循环任务队列,如果队列不为空,则去执行任务。Timer案例:执行一个定时任务,每隔1秒执行一次,延迟2秒执行所以,阿里巴巴开发者规范中不建议使用它是JDK1.5 版本引进的定时任务,,设计的初衷是为了解决Timer单线程执行,多个任务之间会互相影响的问题。实现了该接口。原创 2023-06-02 16:15:03 · 8092 阅读 · 1 评论 -
【SpringBoot】使用 OkHttp 完成网络请求
依赖:工具类:接口:请求测试:原创 2022-12-04 20:18:41 · 2107 阅读 · 0 评论 -
【SpringBoot】Spring Boot 实现接口防刷
AOP + 自定义注解 + Redis 实现接口防刷。原创 2022-11-04 15:50:49 · 584 阅读 · 0 评论 -
【SpringBoot】Spring Boot 实现接口的幂等性
调用方在调用接口的时候先向后端请求一个全局 ID(Token),请求的时候携带这个全局 ID 一起请求(Token 最好将其放到 Headers 中),后端需要对这个 Token 作为 Key,用户信息作为 Value 到 Redis 中进行键值内容校验,如果 Key 存在且 Value 匹配就执行删除命令,然后正常执行后面的业务逻辑。如果不存在就抛异常,返回重复提交的错误信息。针对客户端连续点击或者调用方的超时重试等情况,例如:提交订单,此种操作就可以用 Token 的机制实现防止重复提交。原创 2022-11-04 12:03:01 · 721 阅读 · 1 评论 -
【SpringBoot】三种常见的数据脱敏方案
大家可以根据自己的想法添加其它的脱敏规则(我只想脱敏一部分数据,并指明从哪开始,从哪结束)。要做成可配置多策略的脱敏操作,要不然一个个接口进行脱敏操作,重复的工作量太多。定义数据脱敏注解和数据脱敏逻辑的接口, 在返回类上,对需要进行脱敏的属性加上,并指定对应的脱敏策略操作。4、自定义 AnnotationIntrospector,适配我们自定义注解返回相应的Serializer。由于 Java 8 中新增了许多函数式接口,所以,这里就不需要我们自定义接口了,可以直接使用函数式接口。方案三、自定义注解实现。.原创 2022-09-01 15:31:20 · 8758 阅读 · 3 评论 -
【SpringBoot】SpringBoot 集成 Minio、OSS
MinIO 是一款基于 Go 语言发开的高性能、分布式的对象存储系统。简单来说:就是可以存视频、图片 等。可以创建一个 bucket。原创 2022-08-31 16:42:21 · 1052 阅读 · 0 评论 -
【SpringBoot】SpringBoot 读取配置文件中的自定义属性的 5 种方法
SpringBoot 配置文件的格式有两种:yml、properties。有些方法都适用,但有些方法就有针对性了。注解可以用来指定读取某个配置文件,比如指定读取。就是使用 Properites 对象读取。读取配置文件(properties)注入到类中就可以使用它的。方法来获取某个配置项的值了。...原创 2022-08-30 16:25:34 · 2976 阅读 · 0 评论 -
【SpringBoot】工具类中如何获取 Spring 的 Bean
1、在一个没有被 Spring 管理的 Bean 中,我们要去使用被 Spring 管理的 Bean,该怎么做?很显然,@Autowired 注解不管用。因为扫描不到 @Autowired,所在的类并未被 Spring 管理。2、在工具类中,在一个静态方法中需要调用被 Spring 管理的 Bean,@Autowired 也无法注入静态属性。假若说,我需要在一个工具类中获取 fileConfig的 Bean。其实就是:要获取到 Spring 容器的 Bean!上述获取 Bean 可以通过名称、类型!...原创 2022-08-30 15:49:08 · 1522 阅读 · 0 评论 -
【SpringBoot】 启动后执行方法的五种方式
项目初始化完毕后,才会调用方法,提供服务。注意监听的事件,通常是 ApplicationStartedEvent 或者 ApplicationReadyEvent,其他的事件可能无法注入 bean。在项目初始化过程中,就会调用此方法。如果业务逻辑执行很耗时,可能会导致项目启动失败。1、实现 CommandLineRunner 接口。2、实现 ApplicationRunner 接口。5、实现 InitializingBean 接口。项目初始化完毕后,才会调用方法,提供服务。的大小顺序执行,小的先执行。...原创 2022-08-16 14:24:51 · 15564 阅读 · 0 评论 -
【SpringBoot】三种方式,教你读取 jar 包中的 resources 目录下的文件
但部署后,项目是通过打成 jar 包运行的,里面的文件是没有实际路径的(只有相对于项目名的相对路径)。此方法默认也是从 classpath 路径(即:src 或 resources 路径下)下查找文件的,但它的路径前为什么需要加 “/” 呢?此方法默认是从 classpath 路径(即:src 或 resources 路径下)下查找文件的,所以,路径前不需要加 “/”。因为最后肯定是打包部署的,所以掌握针对后者的这种方式来读取文件是很有必要的。这个是跟要读取的文件与当前.class 文件的位置有关。...原创 2022-08-07 14:44:19 · 29783 阅读 · 4 评论 -
SpringBoot 集成 RabbitMQ(下)
这篇文章内容:SpringBoot 集成 RabbitMQ 的其它模式:工作队列模式、1. 工作队列模式 WorkQueue工作队列模式:一个生产者对应多个消费者1.1 生产者生产者工程结构图:application.ymlserver: port: 8081spring: rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest virtual-host: /原创 2021-10-19 20:17:27 · 265 阅读 · 0 评论 -
SpringBoot 集成 RabbitMQ(上)
接下来使用 SpringBoot 来集成 RabbitMQ1. 简单模式原创 2021-09-26 11:33:43 · 1901 阅读 · 0 评论 -
【SpringBoot】SpringBoot 中使用定时任务
## 1. SpringBoot 集成定时任务1、引入依赖SpringBoot 已经默认集成了定时任务的依赖,只需要引入基本的依赖就可以使用定时任务。```xml org.springframework.boot spring-boot-starter-web```原创 2022-02-11 15:41:08 · 1397 阅读 · 0 评论 -
【SpringBoot】SpringBoot 中使用 @Async 实现优雅地异步调用
在 Java 中,当我们需要执行异步操作时,往往会去创建一个新线程去执行,如下:```javapublic class App { public static void main( String[] args ) { new Thread(() -> { System.out.println(Thread.currentThread().getName() + ":异步任务"); }).start(); }}```Spring原创 2022-02-11 09:29:22 · 5675 阅读 · 4 评论 -
【SpringBoot】SpringBoot + JWT+ Mybatis 整合
现需要完成以下需求:用户执行登录接口之后,需要生成一个 token 返回给前端。之后,前端在请求头中携带着 token 去请求其它的后台接口。完成这个需求之前,咱们先来了解下什么是 JWT 吧。原创 2022-02-06 20:37:22 · 1688 阅读 · 0 评论 -
【SpringBoot】SpringBoot + Shiro + Mybatis + Thymeleaf 整合
在 SpringBoot 工程中,通过集成 Shiro 安全框架来完成对当前登录人的权限的控制。需求如下:一个页面 index.html 上有 ADD、UPDATE 链接,点击 ADD 链接,则跳转到 add.html 页面;UPDATE 链接同理。现在有两个用户:root、tom。root 用户只有 ADD 访问与操作权限,tom 用户则只有 UPDATE 访问与操作权限。如下图:页面内容如下(没有权限判断):root 用户登录:当然,这个 ADD 链接是可以点击的,点击之后,便显示原创 2022-02-06 13:15:37 · 1159 阅读 · 0 评论 -
【SpringBoot】SpringBoot + SpringSecurity + Thymeleaf 整合
在 SpringBoot 工程中,借用 SpringSecurity 权限框架来对登录用户所拥有的不同的权限来显示不同的页面。并且,如果有用户已登录,则右上角显示用户名和其角色。如下图:admin 用户权限最大,显示所有页面内容:zzc 用户只有两个角色权限,所以,只显示部分内容:没有用户登录时,页面显示如下:【首页】、【登录】下方的内容都没有显示。好了,需求已经了解清楚了,那咱们就直接上代码了哈。【文末有源码】【开发环境】:IDEA-2020.2SpringBoot-2.5.5原创 2022-02-02 14:17:14 · 1908 阅读 · 0 评论 -
【SpringBoot】SpringBoot + Mybatis + Thymeleaf 整合
这篇博文将前两篇博文的知识内容给串一串,展示如何将之前零碎的东西给整合成一个小的、完整的东西,并且,介绍一个前端模板引擎 ------ Thymeleaf示例:这是一个对用户列表进行增删改查的实例,可支持文件本地上传sql 文件:实体类:【开发环境】:IDEA-2019.1SpringBoot-2.1.1.RELEASEMAVEN-3.5.3MySQL-5.7Thymeleaf1、引入依赖:<dependencies> <dependency>原创 2022-01-26 16:27:14 · 2711 阅读 · 2 评论 -
【SpringBoot】SpringBoot 中使用 Mybatis 来操作数据库
【开发环境】:IDEA-2019.1SpringBoot-2.1.1.RELEASEMAVEN-3.5.3MySQL-5.71. SpringBoot 中 Mybatis 的使用在 SpringBoot 中使用 Mybatis 需要引入一个 starter:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-st原创 2022-01-23 17:48:28 · 2671 阅读 · 0 评论 -
【SpringBoot】SpringBoot 中对静态资源的访问及映射本地文件
创建一个Java类并实现接口,重写方法// 访问路径以 “/mystatic” 开头时,会去 “mystatic” 路径下找静态资源 registry . addResourceHandler("/mystatic/**") . addResourceLocations("classpath:/mystatic/");} }在下新建mystatic文件夹,并放入一张图片1.jpg。如果我们将修改为/**,这时,就是 SpringBoot 默认配置相同,则会覆盖系统的默认配置。可以多次调用。原创 2022-01-22 12:21:45 · 8381 阅读 · 0 评论 -
【SpringBoot】使用 SpringBoot 手把手教你打出优雅的后端接口
前言一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同,没有什么“一定是最好的”标准,但一个优秀的后端接口和一个糟糕的后端接口对比起来差异还是蛮大的,其中最重要的关键点就是看是否规范!此文就一步一步演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。开发环境IDEA-2020.2.4MAVEN-3.6Sprin原创 2022-01-18 21:32:05 · 831 阅读 · 0 评论 -
【SpringBoot】SpringBoot 中使用自定义注解来实现接口参数校验
在后台接口做参数校验,一般有两种方案:hibernate-validatorAOP + 自定义注解 实现方法级的参数校验开发环境:JDK:1.8SpringBoot:2.5.1IDEA:2019.1.11. hibernate-validatorhibernate-validator 是 Hibernate 项目中的一个数据校验框架,是 Bean Validation 的参考实现。使用 hibernate-validator 能够将数据校验从业务代码中脱离出来,增加代码可读性。同时转载 2022-01-02 17:27:23 · 2024 阅读 · 1 评论 -
【SpringBoot】SpringBoot 中的 Aop + 自定义注解
在 SpringBoot 中使用 Aop原创 2021-12-23 21:35:48 · 6354 阅读 · 4 评论 -
【SpringBoot】由一个 @RequestBody 注解引起了我的深思
1. HTTP 协议HTTP 协议 是一个应用层协议,它是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP 协议 是一个无状态的请求/响应协议。请求消息对象 Request客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行请求头部空行请求数据(请求体 body)如下图:【注意】: &nb原创 2021-11-28 16:56:56 · 4838 阅读 · 0 评论 -
【HttpClient】在 SpringBoot 中使用 HttpClient 实现 HTTP 请求
越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。...原创 2021-11-25 22:19:21 · 13051 阅读 · 3 评论 -
【HttpURLConnection】使用 HttpURLConnection 后台模拟实现 HTTP 请求
在 SpringBoot 工程中,通过 HttpURLConnection 类来实现 HTTP 请求吧。类 HttpURLConnection 是 JDK 自带的。它的应用场景:在自己的工程中,你想调用第三方接口(外部接口)来获取数据,那么 HttpURLConnection 类就可以实现。接下来通过两个小案例来进行实现吧。开发步骤:先开发外部接口再开发内部接口在内部接口中,通过类 HttpURLConnection 去调用外部接口为了测试方便,我这里就将外部接口、内部接口,全写在通过一个原创 2021-11-21 19:07:59 · 1887 阅读 · 0 评论 -
【Zip】使用 SpringBoot 实现 zip文件的导入和导出
了解到有两种解压 zip 文件的方式:org.apache.tools.zip.ZipFile ;SpringBoot 自带的 net.lingala.zip4j.core.ZipFile。这里选择第二种。原创 2021-11-18 22:43:25 · 4756 阅读 · 1 评论 -
【PDF】使用 SpringBoot 导出 PDF 文件
使用 iText 导出 pdf 表格iText 是一种生成 PDF 报表的 Java 组件,先把 jar 包下下来,maven 依赖如下:<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.0.6</version></dependency>1. Hello World原创 2021-11-09 23:14:49 · 5299 阅读 · 7 评论 -
【File】使用 SpringBoot 实现文件的上传与下载
文件的上传与下载在实际项目中用得挺多,所以,今天就在这里总结下。这篇博客不仅仅是完成一个文件上传/下载的功能,更重要的是规范编码吧:日志记录、入参/返参校验、方法职责单一等。开发环境:1.IDEA 2020.22.Maven 3.6.03.SpringBoot 2.0.0.RELEASE1. 单个文件的上传新建一个 SpringBoot 工程,工程结构图如下:POM 依赖:<dependency> <groupId>org.springframework.bo原创 2021-11-12 00:12:41 · 4067 阅读 · 4 评论 -
【Excel】使用 SpringBoot 实现 Excel 文件的导入与导出
为了大家能更好地理解这篇博文,在看之前,建议去看看我的上一篇博文:【File】使用 SpringBoot 实现文件的上传与下载这两篇博文互有联系:文件的导入就是文件的上传;文件的导出就是文件的下载。至于为什么是 导入/导出 Excel 文件呢?因为 Excel 文件用的频率更多吧。顺便来复习下通过 EasyExcel 来操作 Excel 文件。...原创 2021-11-14 20:46:39 · 27846 阅读 · 0 评论