![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot
文章平均质量分 64
毕竟尹稳健
凸头小白
展开
-
Java系统操作日志之数据修改变化记录
如果你想优雅的设计操作日志模块,请参考美团设计的操作日志模块真的,阅读后感觉,优雅、实在是优雅至极。其实把前后两个对象转为map或者json都是可以的,大家都可以试试公司这个记录操作日志功能是没有用到切面的。原创 2023-11-07 10:58:27 · 751 阅读 · 0 评论 -
JWT低阶入门
JWT是JSON Web Token的缩写,即JSON Web令牌,是一种自包含令牌。是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。比如用在用户登录上。JWT最重要的作用就是对 token信息的防伪作用。JWT头、有效载荷、签名哈希最后由这三者组合进行base64url编码得到JWT典型的,一个JWT看起来如下图:该对象为一个很长的字符串,字符之间通过"."分隔符分为三个子串。原创 2022-12-15 10:55:59 · 673 阅读 · 2 评论 -
Java单表实现评论回复功能
评论功能有多种实现方式:单层型:套娃型:两层型:这个地方有个answer_id 很容易让人迷糊:是回复哪个用户的id4.实体类5.实现思路因为有评论区有两层,所以肯定有一个parent_id,这样你才能知道你是哪个评论下面的回复内容,如果继续评论,那么那条评论的parent_id还是之前那条评论的parent_id,而不是那条子评论的id。回复内容也同样是一个评论实体类,只不过是一个集合,所以用List 存储,泛型使用实体类我的功能实现也用到了父评论的用户名和头像,这样可以更好看出这是原创 2022-12-02 16:31:33 · 5486 阅读 · 208 评论 -
SpringBoot+Vue+ElementUI实现头像上传
文件上传不难,关键点在前端接收文件,然后将文件传给后端,后端将文件通过流的方式下载到指定的位置。稍微难一点的地方就是图片回显,只需要将本地的路径返回给前端就行通过file:/文件路径,的方式进行一个图片的回显。原创 2022-10-12 19:07:39 · 2853 阅读 · 6 评论 -
SpringBoot+Vue+ElementUI实现导入和导出
,所以我们可以使用@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)把他的格式转换一下。在进行文件通过浏览器下载的时候,后端传给前端一个文件名,文件名是中文的,会出现乱码,是如何解决的呢?// 构造一个blob对象来处理数据,并设置文件类型。难点在于excel中数据的格式,在转换中可能会报错。//创建新的URL表示指定的blob对象。因为前端代码太多了,只整些核心关键代码。"上传的文件格式不对吧,亲!"上传的文件不能大于10M!浏览器下载最主要的一部分代码。原创 2022-09-28 11:42:51 · 2396 阅读 · 0 评论 -
SpringBoot整合验证码easy-captcha(含有gif验证码)
Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。4.代码实现4.1 gif验证码实现(动态验证码实现)4.1.1 在SpringBoot项目的Controller中进行编写这里的R是返回实体类4.1.2 前端编写核心代码因为前端使用的是vue索引只是截取部分代码。4.1.3 结果显示因为他是gif所以会动5.验证码格式设置5.1 验证码六种组成类型类型描述TYPE_DEFAULT数字和字母混合TYPE_ON原创 2022-09-23 15:22:46 · 594 阅读 · 0 评论 -
Java POI操作excel
操作Excel目前比较流行的就是Apache POI和阿里巴巴的easyExcel!开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中!2、将Excel表中的信息录入到网站数据库(习题上传…使用的对象不一样,但是因为多态的,代码可以不用变化太大。1、将用户信息导出为excel表格(导出数据…原创 2022-09-14 11:26:30 · 2110 阅读 · 0 评论 -
SpringBoot配置Swagger3,解决报错信息
swagger3配置SpringBoot高版本会出现错误,只需要在yml配置中加入配置swagger3默认的访问地址是 http://localhost:8080/sky/swagger-ui/ 改了他的样式后,访问的地址是 http://localhost:8080/sky/doc.html。原创 2022-09-07 13:51:15 · 2661 阅读 · 0 评论 -
SpringBoot中AOP
AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。白话(自我理解):就是对符合切入点表示的方法进行功能扩展。原创 2022-09-06 13:58:50 · 2917 阅读 · 0 评论 -
SpringBoot 自定义注解 + SpringBoot Aop 实现切面日志处理
思考为什么需要自定义注解和AOP简介自定义注解SpringAOP简介自定义注解定义规则实战1.先导入springboot aop的包2.编写自定义注解3.编写切面处理类4.将自定义注解写在连接点总结 项目中常常要打印日志,尤其是在做接口开发中,因为要面临着对前台数据的检查。 这里我们使用的是自定义注解+AOP的方式实现日志注解是一种能被添加到java代码中的元数据(python中的函数装饰器),类、方法、参数、变量和包都可以用注解来修饰。用来定义一个类、属性或者一些方法,以便程序能被捕译处理。原创 2022-09-05 16:57:33 · 800 阅读 · 0 评论 -
前后端分离开发
介绍:前后端分离开发,就是在项目开发过程中,对于前端代码的开发由专门的前端开发人员负责,后端代码则由后端开发人员负责,这样可以做到分工明确、各司其职,提高开发效率,前后端代码并行开发,可以加快项目开发进度。目前,前后端分离开发方式已经被越来越多的公司所采用,成为当前项目开发的主流开发方式。前后端分离开发后,从工程结构上也会发生变化,即前后端代码不再混合在同一个maven工程中,而是分为前端工程和后端工程。开发流程:介绍YApi是高效、易用、功能强大的api管理平台,旨在为开发、产品、测试人员提供更优雅的接原创 2022-07-12 21:52:36 · 166 阅读 · 0 评论 -
Spring Security 新版本配置
Springsecurity最新版配置原创 2022-06-30 20:14:00 · 3480 阅读 · 9 评论 -
RabbitMQ高级-消息确认机制的配置
1、正常情况下能正常接收1、创建交换机、队列、绑定交换机和 队列package com.sky.config;import org.springframework.amqp.core.Binding;import org.springframework.amqp.core.BindingBuilder;import org.springframework.amqp.core.DirectExchange;import org.springframework.amqp.core.Queue;i原创 2022-05-14 12:36:04 · 616 阅读 · 0 评论 -
RabbitMQ高级-死信队列
概述DLX,全称为Dead-Letter-Exchange , 可以称之为死信交换机,也有人称之为死信邮箱。当消息在一个队列中变成死信(dead message)之后,它能被重新发送到另一个交换机中,这个交换机就是DLX ,绑定DLX的队列就称之为死信队列。消息变成死信,可能是由于以下的原因:消息被拒绝消息过期队列达到最大长度DLX也是一个正常的交换机,和一般的交换机没有区别,它能在任何的队列上被指定,实际上就是设置某一个队列的属性。当这个队列中存在死信时,Rabbitmq就会自动地将这个消原创 2022-05-14 12:28:40 · 534 阅读 · 0 评论 -
RabbitMQ高级-过期时间TTL
概述过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。第二种方法是对消息进行单独设置,每条消息TTL可以不同。如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值,就称为dead message被投递到死信队列, 消费者将无法再收到该消息。1原创 2022-05-14 12:25:30 · 330 阅读 · 0 评论 -
RabbitMQ-SpringBoot案例 -topic模式
生产者工程1、RabbitTemplate配置类无,其实并不是没有,而是将配置类的方式换成了注解的。但实际上开发建议用配置类,注解也就图一乐。2、消息发送服务package com.sky.service.impl;import com.sky.service.OrderService;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.anno原创 2022-05-14 12:23:49 · 565 阅读 · 0 评论 -
RabbitMQ-SpringBoot案例 -direct模式
1、生产者工程1、创建RabbitTemplate的配置类package com.sky.config;import org.springframework.amqp.core.*;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * @author 尹稳健~ * @version 1.0 */@Confi原创 2022-05-14 12:21:17 · 202 阅读 · 0 评论 -
RabbitMQ-SpringBoot案例 -fanout模式
1、创建生产者工程1、在pom.xml中引入依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <原创 2022-05-13 15:50:24 · 431 阅读 · 0 评论 -
SpringBoot整合Pagehelper
SpringBoot整合Pagehelper1、导入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.1</version> <原创 2022-04-05 16:11:38 · 883 阅读 · 0 评论 -
SpringBoot整合swagger3.0(与swagger2.0差别)
SpringBoot整合swagger3.01.导入依赖<!-- swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version&g原创 2022-04-03 11:23:14 · 1667 阅读 · 0 评论 -
SpringBoot整合Redis
SpringBoot整合说明:在SpringBoot2.x之后,原来使用的Jedis被替换为lettuceJedis:采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,使用Jedis pool连接池!lettuce:采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!可以减少线程数量源码分析@Bean@ConditionalOnMissingBean( name = {"redisTemplate"} // 我们可以自定义一个redisTemplate原创 2022-04-03 11:05:37 · 133 阅读 · 0 评论 -
SpringBoot集成Swagger
因为SpringBoot2.6.4最新版集成swagger有版本问题所以使用最新版1.导入maven依赖导入SpringBoot的web模块只需要导入一个maven <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <vers.原创 2022-03-23 11:36:30 · 440 阅读 · 0 评论 -
Shiro(SpringBoot整合Shiro)
Shiro1.1 Shiro是什么?Apache Shiro是一个Java的安全(权限)框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以完成,认证,授权,加密,会话管理,Web集成,缓存等。下载地址: http://shiro.apache.org1.2 Shiro有哪些功能1.3 Shiro内部1.4 第一个hellowordhttps://github.com/apache/shiro 在gith原创 2022-03-22 22:07:05 · 222 阅读 · 0 评论 -
SpringBoot整合数据库(JdbcTemplate、druid、Mybatis)
1.JdbcTemplate1.1导入maven<!-- 数据库--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency>原创 2022-03-21 14:05:27 · 336 阅读 · 0 评论 -
SpringBoot简易版文件上传
不多bb,直接上代码@PostMapping("/upload") public String upload(@RequestParam("email") String email, @RequestParam("username") String username, @RequestPart("headerImage") MultipartFile headerImage,原创 2022-03-20 14:05:49 · 438 阅读 · 0 评论 -
SpringBoot拦截器
拦截器1.HandlerInterceptor接口/** * 登录检查 * 1、配置好拦截器要拦截哪些请求 * 2、把这些配置放在容器中 */@Slf4jpublic class LoginInterceptor implements HandlerInterceptor { /** * 目标方法执行之前 * @param request * @param response * @param handler * @return原创 2022-03-20 13:18:07 · 135 阅读 · 0 评论 -
Thymeleaf学习篇
Thymeleaf模板引擎1、Thymeleaf简介Thymeleaf is a modern server-side Java template engine for both weband standalone environments, capable of processing HTML, XML,JavaScript, CSS and even plain text. 现代化、服务端Java模板引擎2、基本语法1、表达式表达式名字语法用途变量取值${…}原创 2022-03-19 15:44:14 · 96 阅读 · 0 评论 -
SpringBoot中Rest映射
@RequestMapping(value = "/user",method = RequestMethod.GET) @ResponseBody public String getUser(){ return "GET-张三"; } @RequestMapping(value = "/user",method = RequestMethod.POST) @ResponseBody public String saveUser(){原创 2022-03-19 14:45:16 · 84 阅读 · 0 评论 -
SpringBoot中banner启动设置
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: S...原创 2022-03-16 14:24:36 · 676 阅读 · 0 评论