
Spring全家桶
文章平均质量分 52
学习和使用springboot笔记及经验
enjoy嚣士
一个行走在键盘上的修理工
展开
-
springboot 之 指定额外资源加载路径
使用-Xbootclasspath/a:原创 2025-05-20 11:27:18 · 324 阅读 · 0 评论 -
springboot之HTML与图片生成
springboot中实现html和图片的转化原创 2025-02-28 17:30:58 · 642 阅读 · 0 评论 -
springboot 之 整合springdoc2.6 (swagger 3)
springboot 3.3 整合springdoc 2.6原创 2024-11-12 13:42:12 · 607 阅读 · 0 评论 -
springboot 之 接口数据脱敏
接口数据脱敏原创 2024-11-07 11:32:02 · 371 阅读 · 0 评论 -
springboot 之 使用easyexcel导出数据到多个sheet,动态表头,自动计算列宽
easyexcel导出多sheet,动态表头,自动列宽原创 2024-07-23 09:07:33 · 655 阅读 · 0 评论 -
springboot 之 使用easyexcel导出数据时数据格式转换问题
easyexcel数据格式转换原创 2024-07-16 15:03:08 · 784 阅读 · 0 评论 -
springboot 3.x 之 集成rabbitmq实现动态发送消息给不同的队列
RabbitMQ动态创建队列原创 2024-06-18 15:59:45 · 789 阅读 · 0 评论 -
springboot 2.x升级到springboot3.x
springboot从2.x到3.x升级相关组件版本原创 2024-06-18 09:52:31 · 466 阅读 · 0 评论 -
springboot 之 BindException、MethodArgumentNotValidException和ConstraintViolationException
BindException、MethodArgumentNotValidException、ConstraintViolationExceptio原创 2024-03-01 10:38:23 · 933 阅读 · 0 评论 -
springboot 之 常用jackson配置与使用
jackson的应用原创 2023-03-10 11:12:10 · 3341 阅读 · 0 评论 -
SpringBoot之项目读取外置logback配置文件
springboot读取外置日志配置文件原创 2022-08-04 09:36:04 · 1478 阅读 · 2 评论 -
springboot之使用http发送文件
springboot中发送文件请求原创 2022-08-04 08:57:04 · 1742 阅读 · 0 评论 -
springboot 之 发送邮件(smtp)
Java 通过Office365 服务器发送邮件原创 2022-07-12 09:35:41 · 1409 阅读 · 0 评论 -
skywalking 安装部署实践
skywalking使用原创 2022-06-23 10:56:54 · 857 阅读 · 1 评论 -
rocketmq 之 使用springcloud stream3.x操作rocketmq
springcloud-stream3.x使用原创 2022-06-10 11:37:08 · 1116 阅读 · 0 评论 -
springboot 之 druid数据库连接池连接失败后一直重连问题
druid重连原创 2022-06-08 14:15:15 · 3910 阅读 · 0 评论 -
SpringCloud2021版遇到的问题
使用较新版本的springcloud实践原创 2022-06-06 11:27:04 · 1746 阅读 · 0 评论 -
Springboot 之 MinIO分布式文件系统部署及使用
Springboot 使用MiNIO原创 2022-05-20 09:46:52 · 1204 阅读 · 0 评论 -
springboot 之 使用Plumelog分布式日志组件
Plumelog一个简单易用的java分布式日志组件相关信息一、系统介绍1.无代码入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志2.基于elasticsearch作为查询引擎3.高吞吐,查询效率高4.全程不占应用程序本地磁盘空间,免维护;对于项目透明,不影响项目本身运行5.无需修改老项目,引入直接使用,支持dubbo,支持springcloud二、架构plumelog-core 核心组件包含日志搜集原创 2022-05-09 14:52:33 · 1007 阅读 · 0 评论 -
springboot 之 利用AOP统计接口调用
@Aspect@Component@Lazy(false)public class ApiCallAdvice { private static final String FORMAT_PATTERN_DAY = "yyyy-MM-dd"; private static final String FORMAT_PATTERN_HOUR = "yyyy-MM-dd HH"; private static final String FORMAT_PATTERN_MILLS = "原创 2022-05-05 18:39:52 · 1282 阅读 · 0 评论 -
springboot 之 整合mqtt并使用emq
说明这里使用的事org.eclipse.paho.client.mqttv3包里的mqtt相关类原因:灵活度高有两个客户端,一个用来发布消息,另一个用来订阅处理消息provider客户端依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2022-04-26 15:22:44 · 716 阅读 · 0 评论 -
tomcat高并发介绍与实践
文章原创 2022-04-22 11:37:46 · 808 阅读 · 0 评论 -
SpringBoot 之 集成Caffeine本地缓存
Caffeine的 github地址使用版本说明:For Java 11 or above, use 3.0.x otherwise use 2.9.xSpringBoot 有两种使用 Caffeine 作为缓存的方式:方式一:直接引入 Caffeine 依赖,然后使用 Caffeine 方法实现缓存。方式二:引入 Caffeine 和 Spring Cache 依赖,使用 SpringCache 注解方法实现缓存。(推荐)SpringBoot 集成 Caffeine 方式一1.引入依原创 2022-04-22 11:33:02 · 1431 阅读 · 0 评论 -
Java 之 CORS跨域问题
CORSCORS,全称Cross-Origin Resource Sharing,是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(the same-origin security policy)浏览器会禁止这种跨域请求。后端处理跨域问题的几种方法1.Java过滤器进行过滤允许整个项目跨域访问,可设置过滤器@WebFilter("/*")public class SimpleCORSF原创 2022-04-11 14:34:42 · 3547 阅读 · 0 评论 -
java连接oracle数据库连接时间长问题
问题一:Java OracleDB connection taking too long the first time解决方法:启动java项目时java参数添加如下参数:-Djava.security.egd=file:/dev/./urandom问题二:java项目使用的druid数据库连接池,前端一段时间不操作之后,再操作接口响应速度慢。解决方法:配置druid参数如下spring.datasource.druid.keep-alive=true...原创 2022-03-28 16:28:16 · 2518 阅读 · 0 评论 -
如何在生产环境优雅的关闭Swagger2
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。转载 2022-03-28 15:49:59 · 3669 阅读 · 0 评论 -
Springboot 之 读写分离实践
前言众所周知,数据库操作中,读操作快,写操作慢。为了缓解数据库压力,使用主从数据库模式(或者集群模式),主库负责读写操作(主要是写操作),从库只读操作。这篇主要是记录在单一主从模式下,springboot 2.x版本 + druid + mysql 的实践。主要思路是 利用Spring内置的RoutingDataSource把两个真实的数据源代理为一个动态数据源, 然后通过切面编程,实现动态选择数据源。这里切面编程有两种方式。第一种,使用注解的方式,手动切换数据源;第二种,指定不同方法使用不同数原创 2021-12-31 15:07:00 · 576 阅读 · 0 评论 -
logback 之 使用MDC记录同一请求的异步处理日志
logback是个比较好用的java日志输出工具包,可配置型高,而且性能优秀。背景在日志记录过程中,如果处理请求是单线程的,那么在日志中定位问题很方便。但是如果处理请求是多线程或者异步处理的时候,查找日志会带来很多问题,同一请求的日志难以都找到。如下:示例单线程@PostMapping("/")public String add(){ return "aaaaaaa";}通过线程号就可以查找到某一请求的具体日志。多线程@PutMapping("/")public Strin原创 2021-11-18 11:24:18 · 2082 阅读 · 0 评论 -
springboot之不返回null字段方法
springboot 不返回null字段方法在实体类中加入@JsonInclude(JsonInclude.Include.NON_NULL)举例:public class RestResponse<T> implements Serializable { private String code; private String msg; @JsonInclude(JsonInclude.Include.NON_NULL) private T data;}原创 2021-11-09 09:31:35 · 1676 阅读 · 0 评论 -
springboot 之 微服务调用 之 链路追踪
springboot 链路追踪原创 2021-10-25 10:14:11 · 4589 阅读 · 0 评论 -
springboot 之 服务限流
Springboot 之限流限流的基础算法令牌桶和漏桶漏桶算法 的实现往往依赖于队列,请求到达如果队列未满则直接放入队列,然后有一个处理器按照固定频率从队列头取出请求进行处理。如果请求量大,则会导致队列满,那么新来的请求就会被抛弃。令牌桶算法 则是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌。桶中存放的令牌数有最大上限,超出之后就被丢弃或者拒绝。当流量或者网络请求到达时,每个请求都要获取一个令牌,如果能够获取到,则直接处理,并且令牌桶删除一个令牌。如果获取不到,该请求就要被限流,要么原创 2021-04-29 13:42:18 · 827 阅读 · 0 评论 -
springboot参数校验
springboot 2.* 参数校验 spring-boot-starter-validation/Hibernate Validator常用注解@AssertFalse 所注解的元素必须是Boolean类型,且值为false@AssertTrue 所注解的元素必须是Boolean类型,且值为true@DecimalMax 所注解的元素必须是数字,且值小于等于给定的值@DecimalMin 所注解的元素必须是数字,且值大于等于给定的值@Digits 所注解的元素必须是数字,且值必须是指定的位数原创 2021-04-28 10:06:27 · 933 阅读 · 0 评论 -
maven的依赖传递性
maven的依赖传递性当项目A依赖于B,而B又依赖于C的时候,自然的A会依赖于C,这样Maven在建立项目A的时候,会自动加载对C的依赖。一、依赖传递对版本的选择假设A依赖于B和C,然后B依赖于D,D又依赖于E1.0,C直接依赖于E2.0,那么这个时候A依赖的是E1.0还是E2.0,还是这两个都依赖呢?两个都依赖是肯定不行的,因为它们可能会有冲突的地方。这个时候就涉及到Maven中依赖传递对版本的选择问题。依赖传递在选择版本的时候首先是根据深度选择的。当一个项目同时经过不同的路径依赖于同一个组件时原创 2021-04-28 10:02:38 · 1123 阅读 · 0 评论 -
Feign注解说明
Feign是常用的微服务rpc调用框架,下面对一些注解说明@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedpublic @interface FeignClient { /** * value和name的作用一样,如果没有配置url那么配置的值将作为服务名称,用于服务发现。反之只是一个名称。 * */ @AliasFor("name")原创 2021-04-26 17:57:15 · 1661 阅读 · 0 评论 -
spring中拷贝对象属性
记录一下,不然忘了又得找好久org.springframework.beans.BeanUtils.copyProperties(src, dst);原创 2021-04-23 10:21:19 · 457 阅读 · 0 评论 -
logging level级别
日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。static Level DEBUG :DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的,一般认为比较重要的方法执行需要详细查看运行情况的则开启debug。static Level INFOINFO level表明消息在粗粒度级别上突出强调应用程序的运行过程,只需要了解该方法是否运行的可以使用INFOstatic Level WARNWARN level表明会出现潜在错误的情转载 2021-04-23 10:14:56 · 893 阅读 · 0 评论 -
springboot常用配置
springboot常用配置#配置访问路径项目名称,即之后访问就是http://127.0.0.1:8080/demo/yourapi/server.servlet.context-path=/demo;#配置端口server.port=8080#配置文件环境spring.profiles.active=dev后续慢慢补充,待续。。。。...原创 2021-04-23 10:02:50 · 124 阅读 · 0 评论 -
SpringBoot过滤器获取POST请求的JSON参数之后Controller没有参数原因
开发过程中,需要打印入参并保存到日志,所以在过滤器对request请求进行了相应处理,但是之后请求到Controller之后发现没有入参了,定位原因,发现是inputSteam调用之后无法再次读取,所以需要进行一次封装,将request保存下来,之后将保存的request传递下去即可。自定义的RequestWrapperpublic class RequestWrapper extends HttpServletRequestWrapper { private final byte[] body转载 2021-04-23 09:57:40 · 1347 阅读 · 0 评论 -
使用 idea 在springboot添加本地jar包的方法
1.首先在与src同级的目录下新建一个lib目录,然后将本地jar包放在lib目录下2.File --> project structure, 打开project ——》Libraries将项目的lib加入进来,add --> java,如图所示3.选择你存放项目的路径,将lib这个文件添加进来完成后可看到Libraries下有一个lib文件4.然后在pom.xml 文件里加入如下代码即可 <!--引入本地资源--> <resources>转载 2021-04-08 12:00:03 · 1587 阅读 · 0 评论 -
springboot 之 启动项目打印接口列表
环境:springboot 2.3.2.RELEASE修改配置文件:logging: level: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: trace结果:原创 2021-03-22 11:58:42 · 1167 阅读 · 0 评论