
SpringBoot
文章平均质量分 82
Spring Boot 去除了大量的 xml 配置文件,简化了复杂的依赖管理,配合各种 starter 使用,基本上可以做到自动化配置。Spring 可以做的事情,现在用 Spring boot 都可以做。
花伤情犹在
我的花会开的 我的生活也会慢慢拥抱我的.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
前后端拦截器+MDC实现纯数字 traceId 全链路日志追踪(axios + Spring Boot 超详细实战)
在现代前后端分离项目中,traceId(追踪 ID)是实现全链路日志追踪、快速定位问题的关键。本文介绍了如何在前端通过 axios 拦截器自动生成纯数字 traceId,并将其添加到每个请求头中;后端使用 Spring Boot 拦截器统一获取 traceId,并结合日志框架的 MDC(映射诊断上下文)机制,让所有日志自动带上 traceId。这样,无论是开发调试还是线上排查,都能通过 traceId 串联起前后端日志,极大提升问题定位和运维效率。文中还提供了详细的代码实现和配置建议,适合生产环境落地。原创 2025-06-16 18:26:19 · 888 阅读 · 0 评论 -
Sublime Text 也能显示彩色日志!一招解决 Spring Boot 日志乱码问题
本文介绍如何通过安装ANSIescape插件,让Sublime Text正确显示带ANSI转义码的Spring Boot彩色日志。安装Package Control后,搜索安装ANSIescape插件,打开日志文件执行"ANSIescape: Colorize"即可将乱码转换为彩色文本。可通过关闭文件、撤销操作或卸载插件恢复原始日志。文章还提供了插件安装失败的排查方法,以及通过配置彻底关闭日志颜色输出的解决方案。效果对比显示,处理后日志可清晰区分不同级别信息,显著提升可读性。原创 2025-06-16 16:44:40 · 835 阅读 · 0 评论 -
解决 RabbitMQ 启用延迟插件错误:Error: {:plugins_not_found, [:rabbitmq_delayed_message_exchange]}
RabbitMQ 是一个强大的开源消息队列系统,广泛用于异步消息传递和任务处理。为了支持消息的延迟处理,RabbitMQ 提供了 rabbitmq_delayed_message_exchange 插件。该插件允许开发者将消息在队列中等待指定时间后再进行处理,适用于那些需要延迟执行的任务,比如定时任务、事件驱动的延迟处理等。原创 2024-12-18 16:03:41 · 936 阅读 · 0 评论 -
Hutool 秒速实现 2FA 两步验证
本文展示如何使用 Hutool 工具包实现 TOTP 功能,并结合 Google 的二维码生成工具 来简化密钥分发和用户配置过程。Hutool 是一个功能丰富的 Java 工具类库,提供了大量实用的功能,使得开发者能够更高效地开发应用程序。特别是其内置的支持 TOTP 和 QR Code 生成的功能,为实现多因素认证提供了极大的便利。原创 2024-11-30 22:03:11 · 1277 阅读 · 0 评论 -
在 Spring Boot 中实时监控 Redis 命令流
在Redis的日常使用和调试中,监控命令流有助于我们更好地理解Redis的工作状态。Redis提供了MONITOR命令,可以实时输出Redis中所有客户端的命令请求,这一功能在调试和分析性能时非常有帮助。在项目中,我们可以通过Jedis客户端来实现Redis命令监控。本文将介绍如何使用 Jedis 实现这一功能,并对比telnet实现MONITOR机制的工作方式。RedisMONITOR命令可以实时输出所有客户端的命令日志,是调试和分析 Redis 性能的利器。在项目中,可以利用Jedis的monitor。原创 2024-11-08 16:14:25 · 1461 阅读 · 0 评论 -
序列化问题记录:Jackson 与 Fastjson 的注解
Java后端开发中,我们经常需要处理JSON序列化和反序列化的问题。Spring框架默认使用Jackson作为JSON处理库,但在某些情况下,我们也可能会使用Fastjson来处理特定的序列化需求。由于这两种库的注解不完全兼容,因此在同一个项目中同时使用它们时,可能会遇到一些问题。为了在同一个项目中同时支持 Jackson 和 Fastjson,并且避免重复编写相同的注解,我们可以创建自定义注解来实现通用性。原创 2024-10-22 13:46:42 · 981 阅读 · 0 评论 -
ApplicationContext获取对象时注解丢失问题及 Arthas 验证方法
本文探讨了通过Spring ApplicationContext获取对象时无法获取注解的问题,分析了原因并展示了如何使用Arthas验证代理类上没有注解的解决方案。原创 2024-10-14 15:53:29 · 653 阅读 · 0 评论 -
byte[]/InputStream/MultipartFile之间进行转换
最近开发项目的时候,遇到了文件上传对象转换的问题 -> 我在对接抖音开放平台的时候,有一个图片上传的接口,需要将byte[]转为对象,但是发现根本没有这样的工具类,后面翻阅了不少帖子得到了解决方案。阿里云的OSS对象存储照片URL需要通过Java获取到图片流,不过我这里下载的是byte数组,byte数组与流对象之间的转换还是比较简单的,这里我就是希望byte数组转为// 图片的链接// 下载图片为字节数组上传对象是,而我的图片资源又是 byte 数组,这之间就需要做一个转换了。原创 2024-10-10 17:57:28 · 3161 阅读 · 0 评论 -
SpringBoot2.x 整合SpringDoc&Javadoc&knife4j实现无注解零入侵式接口文档
SpringBoot2整合SpringDoc、Javadoc和Knife4j可以实现无注解零入侵的API文档生成和展示,提供更友好和强大的文档界面及功能。原创 2024-03-23 16:14:39 · 4486 阅读 · 9 评论 -
Docker 安装 Skywalking以及UI界面
本文详细阐述了如何利用Docker快速安装并运行Apache Skywalking,以实现对分布式系统的高效性能监控与可视化管理。首先,通过执行Docker pull命令从官方仓库获取Skywalking的最新稳定版镜像,确保获得最新的功能与优化。接下来,我们将详细介绍配置Docker容器的具体步骤,包括设置必要的环境变量、端口映射以及数据卷挂载,以便持久化存储Skywalking收集的监控数据和日志文件。原创 2024-03-17 10:49:06 · 7293 阅读 · 0 评论 -
Docker 安装 LogStash
Logstash,作为Elastic Stack家族中的核心成员之一,是一个功能强大的开源数据收集引擎。它专长于从各种来源动态地获取、解析、转换和丰富数据,并将这些结构化或非结构化的数据高效地传输到诸如Elasticsearch等存储系统中进行集中分析和可视化展现。在本文中,我们将详细介绍如何借助Docker容器技术快速安装配置Logstash,以实现日志及各类事件数据的无缝集成与实时处理。原创 2024-03-17 10:19:22 · 1414 阅读 · 0 评论 -
从Spring Boot应用上下文获取Bean定义及理解其来源
Spring Boot应用启动时,通过SpringApplication.run()获取的ConfigurableApplicationContext中管理所有Bean。BeanDefinition存储Bean元信息如类名、作用域等,但不含@Bean注解位置。追溯来源,可借助调试模式查看堆栈跟踪,或自定义BeanFactoryPostProcessor遍历注册表记录详情。虽无法直接从BeanDefinition得知@Bean所在,结合多种方法能有效探析和追踪Bean创建过程,满足实际开发需求。原创 2024-02-28 15:49:30 · 1189 阅读 · 1 评论 -
AopContext.currentProxy() 获取代理对象
在Spring AOP在不同类中,非切面方法A调用切面方法B,切面生效。在不同类中,切面方法A调用非切面方法B,切面生效。在同一个类中,切面方法A调用非切面方法B,切面具有传播性,切面生效。在同一个类中,非切面方法A调用同一类中的另一个切面方法C时,切面失效。其实这个问题和有些场景比如:加上注解事物却失效,都是一个道理,原创 2024-02-01 17:48:16 · 3770 阅读 · 0 评论 -
Mapstruct 搭配MP分页食用 - 参考自ballcat项目
通过 MyBatis Plus 的 IPage#convert 结合 MapStruct 的方法引用,可以实现快速的 VO 对象转换。利用 IPage#convert,对每个记录应用 MapStruct 生成的映射方法,将实体对象转换为 VO 对象,提高代码的可维护性和可读性。这种组合使用简化了分页查询结果的转换过程,使开发者能够专注于业务逻辑,同时享受到 MapStruct 带来的类型安全和自动生成映射代码的便利。原创 2023-11-15 19:18:59 · 703 阅读 · 0 评论 -
SpringBoot 实现EMQ设备的上下线告警
在使用EMQ X 4.4.10的开源版本时,遇到了一个挑战:需要实现设备的上下线状态监控,但该版本并未内置此功能,而仅企业版提供了这一模块。这迫使我探索了另外的解决方案。首先,我对EMQ X进行了一些自定义配置。通过修改acl.config文件,我添加了规则,允许订阅$SYS/brokers/+/clients/#主题的所有客户端。这一步骤为后续监控提供了必要的权限。接着,我创建了一个基于Spring Boot的应用程序,与EMQ X代理建立连接。在应用程序中,我实现了一个监听器,专门用于订阅$SY原创 2023-10-10 16:00:32 · 1836 阅读 · 4 评论 -
SpringBoot轻松实现项目集成Knife4j接口文档
Knife4j 官网Knife4j是一款基于Swagger生成API文档的增强工具,它简化了开发者构建和管理RESTful API文档的过程。通过自动扫描项目中的接口信息,Knife4j能够生成详细、易读的API文档,无需手动编写和维护。它提供交互式的接口调试页面,方便验证接口正确性,同时支持接口聚合和分组,便于管理大型项目中的接口。此外,Knife4j还支持Markdown文档,以及定制化配置选项,使得API文档更加美观、灵活和易于展示。原创 2023-09-19 17:01:15 · 1184 阅读 · 0 评论 -
Docker安装EMQX教程
EMQX 是一款大规模可弹性伸缩的云原生分布式物联网 MQTT 消息服务器。作为全球最具扩展性的 MQTT 消息服务器,EMQX 提供了高效可靠海量物联网设备连接,能够高性能实时移动与处理消息和事件流数据,帮助您快速构建关键业务的物联网平台与应用。原创 2022-12-25 18:49:53 · 3147 阅读 · 0 评论 -
反射获取ConstraintViolationException中的PropertyPath属性路径最后一个节点
如果只想从路径节点(nodeList)中只拿到属性名称,我们只需要取出最后一位节点即可,而nodeList这个路径节点集合属性属于私有变量,所以需要采取反射暴力获取到nodeList这个属性,然后去最后一位即可。多个路径节点源码中是使用.来分割的,PROPERTY_PATH_SEPARATOR这个常量其实就一个点专门用来分割多个路径节点。Ctrl+Alt+B查看Path的实现类是PathImpl。查看toString()方法,发现调用asString()方法获取长度减去1即可获取到最后一位节点,最后调用。原创 2022-10-24 20:23:20 · 811 阅读 · 1 评论 -
SpringBoot 监听Redis key过期回调
失效事件可应对某些场景例如:处理订单过期自动取消、用户会员到期…默认是没有开启键过期监听功能的,需要手动在配置文件中修改。设置值及其过期时间。Java代码实现监听回调。命令将会替换旧的值。原创 2022-10-24 20:09:07 · 2056 阅读 · 0 评论 -
解决SpringBoot引用别的模块无法注入的问题
多模块开发的时候,A模块引入B模块,却无法注入B模块中被。容器中的注解,都是无法在A模块中注入进来。等,只要是你能想到能将类放置在。属性指定包的扫描路径。属性指定包的扫描路径。原创 2022-08-27 23:31:54 · 3546 阅读 · 2 评论 -
SpringBoot整合Shiro+JWT实现认证及权限校验
本文讲解如何使用`SpringBoot`整合`Shiro`框架来实现认证及权限校验,但如今的互联网已经成为前后端分离的时代,所以本文在使用`SpringBoot`整合`Shiro`框架的时候会联合`JWT`一起搭配使用。原创 2022-05-15 21:54:45 · 12217 阅读 · 1 评论 -
SpringBoot整合Hibernate自定义数据验证及多种方式异常处理
本文讲解一下使用Hibernate框架来去验证字段属性,使用相应的注解即可实现字段合法性校验,以及如何自定义注解进行校验,包括出现异常的几种处理方式。原创 2022-04-22 15:19:32 · 1352 阅读 · 1 评论 -
SpringBoot整合MongoDB教程
本文介绍如何使用SpringBoot整合MongoDB数据库,然后使用小Demo演示Java代码对MongoDB进行操作。原创 2022-03-16 17:33:12 · 1834 阅读 · 1 评论 -
SpringBoot整合PageHelper实现分页查询
前言本文介绍的是MyBatis 分页插件 PageHelper,如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。官方文档:https://pagehelper.github.io/项目地址:https://github.com/pagehelper/Mybatis-PageHelper使用方法导入依赖在中央仓库sonatype中搜索 pageHelper,找到 pagehelper-spring-boot-starter原创 2022-03-02 17:09:42 · 1698 阅读 · 1 评论 -
SpringBoot+Spring Data JPA整合H2数据库
H2数据库是一个开源的关系型数据库。H2采用java语言编写,不受平台的限制,同时支持网络版和嵌入式版本,有比较好的兼容性,支持相当标准的sql标准原创 2022-02-16 17:21:34 · 1531 阅读 · 2 评论 -
SpringBoot整合Spring Data JPA
Spring Data JPA 是更大的 Spring Data 家族的一部分,可以轻松实现基于 JPA 的存储库。该模块处理对基于 JPA 的数据访问层的增强支持。它使构建使用数据访问技术的 Spring 驱动的应用程序变得更加容易。原创 2022-02-16 16:50:03 · 1444 阅读 · 0 评论 -
Docker部署SpringBoot应用
前言部署时可能会需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。而Docker确巧妙的解决了这些问题,Docker为了解决依赖的兼容问题的,采用了两个手段:将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离容器去运行,避免互相干扰本文将讲解如何使用Docker来部署我们平时用SpringBoot开发的项目:Dockerfile什么是 Do原创 2021-11-21 17:36:20 · 5995 阅读 · 3 评论 -
SpringBoot整合Redis入门之缓存数据
前言Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。为什么要使用Redis呢?举个例子,假如系统中有2千万用户信息,用户信息基本固定,一旦录入很少变动,那么你每次加载所有用户信息时,如果都要请求数据库,数据库编译并执行你的查询语句,这样效率就会低下很多,针对这种信息不经常变动并且数据量。原创 2021-11-16 12:14:10 · 1352 阅读 · 1 评论 -
Spring Boot 2.x 实现文件上传与下载
前言文件上传的功能是我们在网页中最为常见的功能,比如网盘文件上传,上传账号图像,Excel文件数据的导入功能等等,都需要通过IO流的方式进行上传和下载文件,本文讲解几种基于SpringBoot 2.x来实现文件上传与下载的操作。配置文件上传大小限制spring.servlet.multipart.max-file-size=10GBspring.servlet.multipart.max-request-size=10GB创建文件上传页面在resources目录下的templates中创建一个原创 2021-11-07 23:05:34 · 1140 阅读 · 2 评论 -
SpringBoot整合Mail发送邮件
前言我们在网站上注册账号的时候一般需要获取验证码,而这个验证码一般发送在你的手机号上还有的是发送在你的邮箱中,注册,账号密码…都需要用到验证,今天就演示一下如何用SpringBoot整合Mail发送邮箱。Maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></原创 2021-11-06 14:14:45 · 1943 阅读 · 0 评论 -
SpringBoot设置文件虚拟路径映射
前言我们在写SpringBoot项目的时候,很大几率会遇到文件上传与下载功能。我们一般访问服务器的资源都是resources下的公开资源,配置文件中一般会指定到类路径下的static文件夹下:spring.resources.static-locations=classpath:/static/,或者说不配置默认指定在类路径下:classpath:/,例如:# 应用服务 WEB 访问端口server.port=8080# 项目资源路径:必须加static作为前缀才能访问 默认为/**spring原创 2021-11-06 12:14:50 · 10740 阅读 · 15 评论 -
MyBatis进阶----Mybatis Plus 增删改查
前言在持久层框架中 mybatis 应用比较多,而且比重在逐渐的上升。通常项目的组合是 SSM。mybatis 之所以火,是因为他的灵活,使用方便,优化比较容易。mybatis 的直接执行 sql 语句, sql 语句是写在 xml 文件中,使用 mybatis 需要多个 xml 配置文件,在一定程度上比较繁琐。一般数据库的操作都要涉及到CURD。mybatis-plus 是在 mybatis 上的增强,减少了 xml 的配置,几乎不用编写 xml就可以做到单表的 CURD,很是方便,极大提供了开发原创 2021-09-17 15:12:35 · 5637 阅读 · 13 评论 -
SpringBoot入门----第一个SpringBoot2.0项目
Spring Boot 简介Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化 Spring 应用程序的创建和开发过程,也可以说 Spring Boot 能简化我们之前采用 SpringMVC + Spring + MyBatis 框架进行开发的过程。在以往我们采用 SpringMVC + Spring + MyBatis 框架进行开发的时候,搭建和整合三大框架,我们需要做很多工作,比如配置 web.xml,配置 Spring,配置 MyBatis,并将它们整合在一起等,而 S原创 2021-09-16 21:29:12 · 1360 阅读 · 7 评论