
SpringBoot
文章平均质量分 69
# SpringBoot
伏加特遇上西柚
犹如烈焰般的伏特加和温柔酸甜的西柚碰撞在一起,将是一种美好的相遇。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot集成MyBatis的SQL拦截器实战
/ 作用在字段上// 运行时生效// 脱敏类型(手机号、身份证号等)// 脱敏类型枚举PHONE, // 手机号ID_CARD // 身份证号通过SQL拦截器,我们用极少的代码实现了SQL监控和数据脱敏,避免了修改大量业务代码。原创 2025-07-20 14:05:45 · 1036 阅读 · 0 评论 -
使用HandlerInterceptor 中注入其他service时为null分析及解决
在拦截器配置中将拦截器提前暴露,交给spring容器管理。2、拦截器添加@Component,交给容器管理。原创 2023-09-15 18:00:04 · 1183 阅读 · 1 评论 -
Java异常处理和最佳实践(含案例分析)
最近在代码CR的时候发现一些值得注意的问题,特别是在对Java异常处理的时候,比如有的同学对每个方法都进行 try-catch,在进行 IO 操作时忘记在 finally 块中关闭连接资源等等问题。回想自己对 java 的异常处理也不是特别清楚,看了一些异常处理的规范,并没有进行系统的学习,所以为了对 Java 异常处理机制有更深入的了解,我查阅了一些资料将自己的学习内容记录下来,希望对有同样困惑的同学提供一些帮助。转载 2023-07-22 14:13:01 · 746 阅读 · 0 评论 -
WebSocket使用记录
2.3 添加WebSocketServer。原创 2023-07-11 16:31:04 · 976 阅读 · 0 评论 -
Async 使用详解
使用 @Async可以实现程序的异步执行,完成程序优化;被调用方法和调用方法处理同一个类中会导致异步失效同一个类中。失效的代码void a() {this . b();} }正常的代码void a() {} }从@Async案例找到Spring框架的bug:exposeProxy=true不生效原因大剖析+最佳解决方案。原创 2023-06-02 13:53:49 · 5949 阅读 · 0 评论 -
SpringBoot源码分析
项目的入口是带有main函数的启动类:ConsumerApplication这里跟SpringBoot有关联的部分有两个,一个是,一个就是启动类上的注解:。我们分别跟踪两部分内容。函数中的;就是项目的入口,也是加载的完整过程,我们从这里开始。首先跟入,流程如图:因此,接下来要看的是两部分:构造函数有关的几个变量和方法提取出来,方便查看:解读:我们只看难点部分,也就是步骤3、4、5判断项目类型:可以看到判断结果包含3种:在构造函数中被调用了两次,分别加载和: 方法的作用是获得指定接口的实现类的实例原创 2023-04-16 20:18:34 · 2048 阅读 · 1 评论 -
SpringBoot下载根目录Excel模板文件
maven插件打包项目的时候,默认会压缩resources目录下的文件。服务器读取的文件流来自于压缩后的文件,而返回给浏览器时,浏览器把他当作正常的文件解析,自然不能得到正确的结果。资源文件放在resources目录static/generic/templates/下面。配置一下maven插件,打包的时候不要压缩模板文件,排除拓展名为xlsx的文件。即使这里配置了utf-8,也会出现文件的中文名乱码的情况。想彻底解决乱码问题,我们还需要在代码中需要做一些处理.。原创 2022-09-07 16:13:30 · 3213 阅读 · 0 评论 -
统一返回统一异常参数校验集成
一 统一返回结果1.2 ResultEnum1.3 Result使用ResponseBodyAdvice统一处理controller返回的结果,包装结果经过这样改造,既能实现对 Controller 返回的数据进行统一包装,又不需要对原有代码进行大量的改动自定义异常是为了后面统一拦截异常时,对业务中的异常有更加细颗粒度的区分,拦截时针对不同的异常作出不同的响应而统一拦截异常的目的一个是为了可以与前面定义下来的统一包装返回结构能对应上,另一个是我们希望无论系统发生什么异常,Http 的状态码都原创 2022-08-04 11:26:22 · 385 阅读 · 2 评论 -
Docker安装FastDFS分布式文件系统
docker中安装FastDFS.原创 2022-03-01 22:40:44 · 1584 阅读 · 0 评论 -
SpringBoot访问FastDFS(附带工具类)
springboot实现fastDFS文件上传下载删除工能原创 2022-03-02 15:28:56 · 1572 阅读 · 1 评论 -
springBoot整合redis使用介绍(详细案例)
文章预览:一、创建springboot项目(采用骨架方式)二、配置文件三、使用redis1、添加字符串到redis2、将对象转换成jsonString并存入redis3、将对象集合转换成jsonString,并设置过期时间存入至redis4、获取对象5、获取对象集合6、添加 hash-set7、获取 hash-setvalue一、创建springboot项目(采用骨架方式)创建完成;我们分析下pom文件中内容:所使用到的关键依赖: <!--springBoot集成redis--&原创 2021-09-19 22:26:17 · 59751 阅读 · 3 评论 -
lockback日志记录
项目当中经常会记录日志,以便于问题排查原创 2022-05-03 00:36:50 · 3097 阅读 · 0 评论 -
使用hibernate-validator实现进入controller前完成参数优雅校验
一、为什么要使用validator?参数校验在开发过程中是非常重要的一步,如果说前端的参数校验是为了用户的体验,那么后端的参数校验则为了安全。小伙伴们有没有做过参数校验的土方法,一个一个字段去判断。这种方式弊端显而易见----代码冗余,我之前就这么干过。后来通过学习发现有现成的validator工具为什么不直接使用呢?二、hibernate-validator使用步骤2.1 定义controller全局异常处理器使用validator进行参数校验时,会对不符合条件的参数进行异常抛出。如果不加以原创 2022-02-26 23:40:09 · 1055 阅读 · 0 评论 -
SpringBoot统一封装controller层返回的结果
SpringBoot统一封装controller层返回的结果原创 2022-11-02 23:29:12 · 6942 阅读 · 12 评论 -
SpringBoot统一返回处理出现cannot be cast to java.lang.String异常
后端服务使用Restful API的形式,前后端得规范一般是json格式,如果返回的是字符串直接手动封装返回对象转成json字符串返回即可。当返回的数据是字符串时,此处得方法是要去循环遍历。异常,返回其他类型就无任何问题。当返回的数据是非字符串时使用的。会先被遍历到,这时会认为。默认会注册一些自带的。原创 2022-11-02 23:24:59 · 16770 阅读 · 4 评论 -
SpringBoot使用ApplicationEvent&Listener完成业务解耦
1、SpringBoot使用ApplicationEvent&Listener完成业务解耦2、ApplicationEvent事件机制原创 2021-09-20 22:26:07 · 235 阅读 · 0 评论 -
SpringBoot的统一日志记录
利用Aop拦截所有的Service方法,对执行结果日志进行记录。package com.ats.dt.advice;import com.ats.dt.exceptions.HandleException;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.anno原创 2021-03-21 20:25:30 · 631 阅读 · 2 评论 -
SpringBoot项目异常的统一处理
采用Spring提供了一个通用的异常处理器ControllerAdvice,可以非常方便的帮助我们实现统一的异常处理。1.定义异常处理器ControllerExceptionAdvicepackage com.ats.dt.advice;import com.ats.dt.exceptions.HandleException;import lombok.extern.slf4j.Slf4j;import org.springframework.http.MediaType;import o原创 2021-03-21 20:08:33 · 738 阅读 · 3 评论 -
SpringBoot一个服务启动多次方法
第一步:选中服务 按快捷键:Ctrl+D第二步:修改服务名称,端口号:-Dserver.port=8082第三步:点击ok 启动即可原创 2021-03-14 17:45:47 · 832 阅读 · 0 评论 -
SpringBoot整合mybatis
demo全览##① mapper层UserMapper@Mapper@Repositorypublic interface UserMapper { @Select("select * from t_user") public List<User> findAll();}UserXmlMapper@Mapper@Repositorypublic interface UserXmlMapper { public List<User>原创 2021-01-12 21:53:49 · 136 阅读 · 0 评论 -
SpringBoot获取数据
配置文件中数据:name: abc#对象persion: name: lele age: 29#对象行内写法persion2:{name: zhangsan,age: 20}#数组address: - beijing - shanghai#数组行内写法address2: [beijing,shanghai]msg1: 'hello \n world' #不会识别转译字符,原样输出msg2: "hello \n world" #会识别转义字符方式一:原创 2021-01-12 21:41:19 · 352 阅读 · 0 评论 -
SpringBoot配置
介绍:SpringBoot应用时,通常同一套程序会被安装到不同环境,比如:开发,测试,生产等。其中数据库地址、服务器端口等配置都不同,如果每次打包时,都要修改配置文件,非常麻烦。profile功能就是进行动态配置切换的。1)profile配置方式多profile文件方式yml多文档方式2)使配置生效方式一-Dspring.profiles.active=test方式二--spring.profiles.active=pro...原创 2021-01-09 23:25:57 · 297 阅读 · 0 评论