
Spring Boot
文章平均质量分 76
Spring Boot 专栏
宋冠巡
软件开发工程师
展开
-
Spring事务自调用失效问题解析:Spring 的事务管理基于 AOP 代理实现,自调用会绕过代理,导致 @Transactional 注解失效
在Spring框架中,事务管理基于AOP代理机制实现。当在同一个类中进行 自调用(方法内部调用另一个带有@Transactional注解的方法) 时,事务注解会失效。这是因为自调用绕过了AOP代理,直接调用原始对象的方法,导致事务拦截器无法生效。原创 2025-04-28 08:00:00 · 976 阅读 · 0 评论 -
Spring Boot集成MyBatis访问MySQL:项目搭建全流程(包含报错场景分析及解决方案)
本文记录完全从零开始,创建一个新的集成MyBatis的SpringBoot项目,然后逐渐添加配置,使项目能够正常访问数据库的整个流程,并且详细记载了每一个报错和解决错误的过程。原创 2025-02-27 08:00:00 · 1555 阅读 · 0 评论 -
Spring Boot集成MyBatis访问MySQL:从项目搭建到基础数据库查询(基础入门)
在当今企业级应用开发中,Spring Boot、MyBatis与MySQL的组合凭借其高效性和灵活性,成为构建数据驱动型应用的首选方案。本文将带你从零开始搭建项目,掌握Spring Boot集成MyBatis的基础入门内容。原创 2025-02-26 08:00:00 · 1858 阅读 · 0 评论 -
SpringBoot3.4.0和OpenFeign4.1.4不兼容
SpringBoot升级到3.4.0版本,和OpenFeign不兼容,maven install 时报错,即使OpenFeign升到最新版本4.1.4,依然不兼容。SpringBoot版本降为3.3.6 ,maven install 成功。原创 2024-11-29 08:00:00 · 1287 阅读 · 0 评论 -
SpringBoot环境配置(Spring Boot Profile)
激活配置文件:当Spring Boot启动时,默认会查找并加载application.properties或application.yml中的配置。如果你希望根据不同的环境来使用不同的配置文件,可以通过激活配置文件来实现这一点。例如,你可以创建application-dev.properties或application-test.yml等文件来为开发环境或测试环境提供特定的配置。转载 2024-09-18 08:15:00 · 1252 阅读 · 0 评论 -
Spring Boot 基于构造函数的依赖注入(Constructor-based Dependency Injection)配合 Lombok @RequiredArgsConstructor
Spring Boot 结合使用 基于构造函数的依赖注入(Constructor-based Dependency Injection)和 Lombok 的 @RequiredArgsConstructor 是一个非常高效且优雅的组合。Spring团队通常提倡构造函数注入。@RequiredArgsConstructor 是 Lombok 库中的一个注解,它用于自动生成一个构造器,该构造器包含类中所有被 final 修饰的字段或所有没有默认值的 @NonNull 注解的字段。原创 2024-07-22 08:00:00 · 1407 阅读 · 0 评论 -
OpenFeign 维护状态 和 HTTP客户端 @HttpExchange
OpenFeign 维护状态;SpringBoot3 的 HTTP客户端 @HttpExchange;原创 2024-03-26 07:45:00 · 1101 阅读 · 0 评论 -
Restful API 日期时间格式与 ISO 8601
在 RESTful API 中传递日期类型的参数时,通常建议采用一种普遍可解析且无歧义的格式。ISO 8601 格式是一个被广泛接受的标准,适用于查询参数、请求体参数以及响应中的日期和时间字段。原创 2024-03-20 08:00:00 · 1909 阅读 · 0 评论 -
SpringBoot项目,升级版本,安全性高吗?可能会遇到哪些问题?
在实际升级过程中可能会遇到以下与安全性相关的问题:兼容性问题、API变更、依赖项安全、功能迁移等。为了避免上述问题,建议在升级前执行以下操作:备份现有项目、阅读发行说明、检查依赖、测试验证、启用诊断模式。原创 2024-03-18 07:15:00 · 1470 阅读 · 0 评论 -
一个SpringBoot项目,打出来的生产包,是否应该有版本号?(AI问答)
一个Spring Boot项目在打生产包时,确实应该包含版本号信息。版本号对于软件的管理和部署至关重要,它可以帮助开发者和运维人员追踪应用的不同迭代版本,便于回滚、升级以及解决兼容性问题。原创 2024-02-27 08:00:00 · 1677 阅读 · 0 评论 -
Spring Boot 接口请求日志(基于AOP和自定义注解)
在Spring Boot应用中,实现接口请求日志记录功能,要求能够记录包括请求方法、接口路径及请求参数等核心信息,并提供灵活的开关配置。原创 2024-02-26 08:00:00 · 3691 阅读 · 1 评论 -
接口返回响应,统一封装(ResponseBodyAdvice + Result)(SpringBoot)
接口的返回响应,封装成统一的数据格式,再返回给前端。1. 定义:响应实体的数据结构;2. 响应数据统一封装;原创 2023-10-28 08:00:00 · 4839 阅读 · 0 评论 -
授权信息(登录信息)解析为接口方法的参数(@Authorization + HandlerMethodArgumentResolver + WebMvcConfigurer)
对于需要`授权或登录`的系统,大量的接口,需要获取到用户的 ` 授权信息 / 登录信息 ` 。这些信息可能存在于Session或token中。将` 授权信息 / 登录信息 `解析为`接口`的`参数`。这样避免了在每个接口中重复写信息解析的代码,提交了效率。原创 2023-10-26 22:00:00 · 269 阅读 · 0 评论 -
日期时间参数,格式配置(SpringBoot)
在SpringBoot项目中,接口中的日期和时间类型的参数,配置格式。原创 2023-10-10 23:22:11 · 6451 阅读 · 1 评论 -
修改接口,字段的内容允许清空,避免歧义,参数校验:@NotNull
修改接口,字段的内容允许清空,是否应该做参数校验?如何做参数校验?需要对字段进行校验。因为不校验,字段可能不传,或者字段的值为null;这样无法判断出,这个字段对应的含义,是`不修改`(默认逻辑),还是要`修改为空`(业务中修改的逻辑)。正确的校验方法是使用 `@NotNull`,字段必须传且不能为空指针`null`,否则接口返回调用失败。原创 2023-09-21 08:00:00 · 463 阅读 · 0 评论 -
@Autowired注解推荐使用方法:用在构造方法上
Autowired注解,用于自动将一个对象注入到当前的对象中。spring 推荐使用构造器注入的方式。spring 不推荐@Autowired注解用于字段。原创 2023-09-20 23:26:51 · 1143 阅读 · 0 评论 -
Spring Boot 各版本的支持时间
Spring Boot 各版本的支持时间`Spring Boot 2.7` 的版本,支持到`2023-11-18`,之后就要停止支持了。按照官网的数据,3.0 的版本也是到2023年11月就停止支持了。如果要转到SpringBoot3,直接从3.1开始吧。到写这篇文章时(2023-9-18),3.2版本,还不是发布版本,还不可以用。原创 2023-09-18 21:35:14 · 2856 阅读 · 0 评论 -
SpringBoot:返回响应,统一封装
接口的返回响应,封装成统一的数据格式,再返回给前端。原创 2023-09-15 20:00:00 · 982 阅读 · 1 评论 -
Excel文件生成与下载(SpringBoot项目)(easypoi)
通过接口,导出表格。使用SpringBoot框架和easypoi表格解析框架,生成Excel表格,并通过接口下载。原创 2023-09-08 23:19:11 · 989 阅读 · 0 评论 -
警告:Provides transitive vulnerable dependency maven:org.yaml:snakeyaml:1.30
SpringBoot 的 validation 依赖包含有易受攻击的依赖 snakeyaml。警告信息如下:意思是:提供了可传递的易受攻击依赖 maven:org.yaml:snakeyaml:1.30。解决方案:使用 `dependencyManagement` ,将所有的 `snakeyaml` 统一改成没有隐患的版本。原创 2023-09-03 22:36:03 · 4262 阅读 · 0 评论 -
SpringBoot项目(jar)部署,启动脚本
SpringBoot项目(jar)部署,需要先关闭原来启动的项目,再启动新的项目。直接输入命令,费时费力,还容易出错。所以,使用脚本启动。原创 2023-08-29 09:07:54 · 2124 阅读 · 3 评论 -
SpringBoot返回响应排除为 null 的字段
可以通过全局配置,使返回响应中为null的字段,不在出现在返回结果中。注意:这样配置,使得返回响应包含的字段随请求结果变化,响应到底包含哪些字段不直观;除非业务明确有这种需求,否则不建议配置。PS:Gson将Bean转为JSON时,默认会排除null字段。原创 2023-08-23 20:59:42 · 1509 阅读 · 0 评论 -
Spring Cloud 的版本和SpringBoot的版本
Spring Cloud 的版本和SpringBoot的版本,存在对应关系。最新的SpringCloud版本(发布文章时为2022.0.3),需要的支持。我使用的Spring Boot版本为2.7版本,所以无法使用2022.0.3版本的SpringCloud。我最终选择的Spring Cloud 版本为2021.0.8。原创 2023-08-06 16:17:19 · 4751 阅读 · 0 评论 -
Eureka注册中心 与 OpenFeign调用接口
# 需求一个应用通过接口,调用另一个应用的接口。使用OpenFeign来实现接口调用。# 说明通过OpenFeign(本文接下来简称Feign)调用远程接口,需要Eureka注册中心的支持。原创 2023-07-27 23:05:50 · 2705 阅读 · 0 评论 -
报错:StandardServletMultipartResolver : Failed to perform cleanup of multipart items
报错:StandardServletMultipartResolver : Failed to perform cleanup of multipart items使用完 InputStream 之后,没有关闭。导致 tomcat 临时文件无法删除。原创 2023-06-10 23:36:00 · 18251 阅读 · 19 评论 -
Spring定时任务(附带:Cron表达式从配置文件读取)
Spring定时任务(附带:Cron表达式从配置文件读取)原创 2023-07-22 08:00:00 · 1421 阅读 · 0 评论 -
集成了Eureka的应用启动失败,端口号变为8080
集成了Eureka的应用启动失败,端口号变为8080原创 2023-07-20 23:08:26 · 1211 阅读 · 0 评论 -
SpringBoot多线程异步任务:ThreadPoolTaskExecutor + CompletableFuture
在SpringBoot项目中,一个任务比较复杂,执行时间比较长,需要采用多线程异步的方式执行,从而缩短任务执行时间。原创 2023-06-22 17:19:50 · 3834 阅读 · 0 评论