
SpringBoot
文章平均质量分 89
李少兄
此人不懒,但还是什么东西都没写
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring Boot Maven 插件:构建可执行 JAR 的核心配置
Spring Boot Maven插件是Spring Boot应用开发的核心工具,主要功能是将应用及其依赖打包为可独立运行的JAR/WAR文件。该插件提供5个核心目标:repackage(生成可执行包)、run(直接运行应用)、start/stop(集成测试阶段启停应用)和build-info(生成构建信息)。 插件支持多种配置选项,包括指定主类、跳过执行、包含系统依赖、定义打包格式等。通过executions标签可以绑定构建生命周期,实现自动化打包和测试。原创 2025-07-14 09:00:00 · 1649 阅读 · 0 评论 -
解决Spring框架中TaskExecutor类型Bean冲突导致的自动注入失败问题
当Spring容器中存在多个TaskExecutor类型的Bean时,使用@Autowired注入会引发NoUniqueBeanDefinitionException异常。解决方案包括: 使用@Qualifier指定具体Bean 通过@Primary标记默认Bean 重命名冲突的Bean 调整自动配置(禁用默认线程池或排除自动配置类) 建议优化措施包括采用工厂/策略模式管理Executor,添加注入校验,并通过Actuator监控线程池状态。该问题常见于Spring Boot 2.1+版本中自动配置原创 2025-07-13 17:33:45 · 716 阅读 · 0 评论 -
Spring Boot 配置注解处理器 - spring-boot-configuration-processor
Spring Boot配置注解处理器(spring-boot-configuration-processor)是提升开发效率的关键工具,它通过生成元数据文件实现智能提示和类型校验。本文详解其核心原理、使用方法(Maven/Gradle配置、编译验证)、常见问题解决方案,以及高级用法(自定义元数据、嵌套属性)。对比@ConfigurationProperties与@Value的差异,并提供分层设计等最佳实践建议,帮助开发者更高效地管理配置属性。原创 2025-07-13 17:18:40 · 993 阅读 · 0 评论 -
MyBatis Plus 与 P6Spy 配置
本文介绍了Java开发中SQL日志调试与性能监控的两种常用方案:MyBatis Plus日志配置和P6Spy数据库监控工具。MyBatis Plus提供了基础的控制台SQL输出功能,支持自定义日志格式与主流日志框架集成。P6Spy则能记录完整SQL语句、执行时间和参数替换,并具备慢SQL检测能力。文章详细讲解了两种工具的配置方法、输出示例及性能优化建议,包括慢SQL检测、参数化SQL替换和表名过滤等功能。最后针对驱动冲突等常见问题提供了解决方案,帮助开发者优化数据库操作性能。原创 2025-06-28 09:30:00 · 931 阅读 · 0 评论 -
MyBatis Plus与P6Spy日志配置
本文详细介绍了在Spring Boot项目中配置MyBatis Plus和P6Spy的SQL日志输出方案。主要内容包括:基础配置(StdOutImpl直接输出SQL日志)、高级配置(自定义日志格式)、P6Spy配置(详细SQL监控与慢查询检测)以及生产环境注意事项。文章还提供了日志格式化优化建议和常见问题解答,帮助开发者在不同场景下高效调试SQL语句,同时兼顾性能和安全性。通过合理配置日志输出,开发者可以直观查看SQL执行情况,快速定位性能问题。原创 2025-06-24 21:51:22 · 878 阅读 · 0 评论 -
Spring Boot 配置文件优先级
Spring Boot 提供了灵活的配置管理机制,支持多种配置源(YAML、Properties、命令行参数、环境变量等)和多环境配置。配置优先级从低到高依次为:YAML/YML/Properties文件、Java系统属性、命令行参数和环境变量。为适应不同环境(开发、测试、生产),推荐使用profile-specific配置(application-{profile}.yml)并通过spring.profiles.active激活。最佳实践包括优先使用YAML格式、将敏感配置外部化、明确配置加载路径(如/c原创 2025-06-23 09:00:00 · 1056 阅读 · 0 评论 -
【bugfix】记一次Spring Boot 配置层级错误导致数据库连接失败
本文剖析了 Spring Boot 项目中数据库配置失效的常见原因,指出配置文件层级错误是导致连接失败的根源。通过对比错误与正确配置示例,详细解析了 spring.datasource 标准层级结构和核心参数。文章提供了多环境配置、敏感信息加密等最佳实践,并给出启动日志分析、连接测试等调试技巧,帮助开发者快速定位和解决数据库连接问题。最后总结配置文件的核心原则与避坑指南,强调层级一致性和安全优先的重要性。原创 2025-06-16 22:11:40 · 913 阅读 · 0 评论 -
后端解决跨域问题的三种方案:注解配置 vs 全局配置 vs 过滤器配置(附完整代码详解)
跨域问题是前后端分离开发的核心挑战,本文系统梳理了三种主流解决方案:1)基于WebMvcConfigurer的全局配置,推荐用于中大型项目;2)CorsFilter过滤器配置,适用于需要底层控制的场景;3)@CrossOrigin注解,适合小型项目快速实现。每种方案均附有核心代码、实现原理及优缺点分析,特别强调安全注意事项,如禁用allowCredentials(true)+通配符*的危险组合。文章对比了三种方案的适用场景,并给出最佳实践建议,帮助开发者根据项目需求选择合适的跨域解决方案。原创 2025-06-03 21:59:24 · 1827 阅读 · 0 评论 -
解决Spring Boot 组件扫描未覆盖导致 Bean 注册失败问题
在 Spring Boot 项目中,Bean 注册失败是常见问题,通常表现为 Spring 容器无法找到特定类型的 Bean,导致依赖注入失败。主要原因在于 Spring Boot 的默认组件扫描范围仅限于主类所在包及其子包,若目标类位于其他包中,则无法被扫描到。针对这一问题,有几种解决方案:1. 使用 @ComponentScan 显式扩展扫描范围;2. 通过 @Import 手动导入单个类;3. 在配置类中使用 @Bean 手动注册;4. 使用 @ComponentScan 的 basePackageC原创 2025-05-20 09:15:00 · 880 阅读 · 0 评论 -
Spring Boot 中 @Valid 与 @Validated 的解析
在 Spring Boot 中,@Valid 用于集合元素递归校验,而 @Validated 支持分组校验与方法级校验,两者结合可实现高效参数验证。原创 2025-05-15 09:15:00 · 737 阅读 · 0 评论 -
# **解决 Spring Boot 文件上传 MultipartFile 报错 `java.io.UncheckedIOException: Cannot delete C:\Users\XXX`*
在 Spring Boot 开发中,文件上传功能是常见的需求。若在异步任务中处理文件上传,临时文件可能在主线程结束后被框架删除,导致异步任务无法访问文件。接口抽象文件上传操作。上传的文件默认存储在操作系统的临时目录中(如 Windows 的。若在异步任务中处理文件上传,临时文件可能在主线程结束后被框架删除,导致。返回的输入流若未显式关闭,底层文件句柄会被占用,导致文件无法删除。,延迟或禁用临时文件的自动清理,确保业务逻辑完成后再手动删除文件。默认临时目录权限不足或路径不固定,可能导致文件清理失败。原创 2025-05-08 10:00:00 · 2065 阅读 · 0 评论 -
Spring Boot 配置管理
Spring Boot 以其“约定优于配置”的理念,极大地简化了基于 Spring 的应用开发。配置管理是 Spring Boot 的核心能力之一,它通过自动化机制和灵活的配置方式,让开发者能够高效地管理应用程序的参数、环境差异和外部依赖。结合 JSR 380(Bean Validation)对配置项进行校验。Spring Boot 的配置管理机制通过自动化与灵活性的结合,极大提升了开发效率。掌握、Profile 管理、加密配置等技巧,不仅能减少重复劳动,还能提升系统的可维护性和安全性。原创 2025-05-02 10:00:00 · 1168 阅读 · 0 评论 -
Spring Boot 中 `@EnableConfigurationProperties` 注解
@EnableConfigurationProperties 是 Spring Boot 实现外部化配置的核心注解,通过与 @ConfigurationProperties 配合,能够高效地将配置文件中的属性绑定到 Java 对象,提升代码的可维护性和解耦性。其核心价值在于简化配置管理,避免硬编码,同时支持灵活的多环境配置策略。原创 2025-04-30 09:30:00 · 1307 阅读 · 0 评论 -
解决Spring Boot多模块自动配置失效问题
在Spring Boot多模块项目中,模块间配置不生效是一个复杂但可解决的问题,尤其涉及自动配置类、依赖冲突、条件注解以及IDE配置。原创 2025-04-25 16:15:00 · 2053 阅读 · 3 评论 -
Spring Boot 依赖管理: `spring-boot-starter-parent` 与 `spring-boot-dependencies`
在 Spring Boot 的开发实践中,依赖管理是构建高质量应用的基础。和是 Spring Boot 提供的两大核心依赖管理工具,它们在简化依赖版本控制、统一配置等方面发挥着关键作用。-- 自定义依赖版本 --> </ dependencyManagement > </ project >-- 自定义依赖版本 --> </ dependencyManagement > </ project >-- 自定义依赖版本 --> </ dependencyManagement > </ project >原创 2025-04-23 10:00:00 · 1395 阅读 · 0 评论 -
解决Spring Boot版本冲突导致的`NoSuchFieldError`
统一版本:通过父模块管理依赖版本。排除污染:显式排除第三方库的冲突依赖。工具辅助:使用Maven Helper或排查冲突。迁移适配:若升级到Spring Boot 3.x,需处理包名、JDK版本及第三方库兼容性。原创 2025-04-23 09:30:00 · 1682 阅读 · 0 评论 -
Spring事件驱动机制
在现代企业级应用开发中,组件之间的解耦与协作是系统设计的核心目标之一。Spring框架提供的事件驱动机制(Event-Driven Mechanism)完美契合这一需求,通过观察者模式实现组件间通信,提升系统的可维护性和扩展性。Spring的事件驱动机制基于观察者模式事件(Event):继承自的类,封装事件数据。监听器(Listener):通过接口或注解定义,响应特定事件。发布者(Publisher):通过接口发布事件,通常由实现。事件类需继承。原创 2025-04-22 09:30:00 · 1003 阅读 · 0 评论 -
Spring Boot 的依赖冲突
在 Spring Boot 项目中,依赖冲突是开发者常遇到的棘手问题。无论是不同版本的 spring-boot-starter 模块冲突,还是第三方库与框架的版本不兼容,都可能导致程序启动失败或功能异常。原创 2025-04-22 09:30:00 · 1257 阅读 · 0 评论 -
Spring、Spring Boot、Spring MVC
通过合理选择Spring Framework、Spring MVC与Spring Boot,开发者既能享受基础框架的灵活性,又能借助Spring Boot的高效开发能力,快速构建从单体到微服务的多样化应用。在Java生态中,Spring家族是企业级开发的基石,其核心框架Spring Framework、Web框架Spring MVC以及简化开发的Spring Boot,共同构建了从基础架构到现代化应用的完整技术栈。:基于Spring Framework的“开箱即用”框架,简化开发与部署。原创 2025-04-22 09:30:00 · 1189 阅读 · 0 评论 -
Logback 日志框架
Logback 作为 Spring Boot 的默认日志框架,提供了高性能、灵活的日志解决方案。(Log4j 作者)设计的高性能日志框架,专为 Java 应用提供高效、灵活的日志解决方案。Spring Boot 默认通过。结构化日志以 JSON 格式记录日志,便于后续分析。依赖集成 Logback,支持开箱即用的日志功能。原创 2025-04-21 09:30:00 · 2102 阅读 · 0 评论 -
解决Spring Boot启动时YAML配置占位符导致的ScannerException(yml占位符动态替换)
在Spring Boot项目中,YAML配置文件常使用占位符(如)实现动态配置。然而,若未正确配置Maven资源过滤机制,占位符可能未被替换,导致。5.1 核心知识点回顾Maven资源过滤:通过配置动态替换占位符。YAML语法规范:避免使用符号,严格遵循缩进与格式。环境配置管理:通过<profiles>实现多环境属性切换。5.2 知识点延伸进阶配置使用<excludes>排除特定文件。通过<filter>指定额外的过滤属性文件。工具辅助使用IDEA的Maven插件实时检查资源过滤配置。原创 2025-04-06 09:30:00 · 2203 阅读 · 0 评论 -
解决Spring参数解析异常:Name for argument of type XXX not specified
在开发 Spring Boot 应用时,我们常遇到类似的报错。这类问题通常与方法参数名称的解析机制相关,尤其在使用等注解时更为常见。参数名称丢失的根本原因:Java 编译器默认不保留参数名称,需通过标志显式启用。解决方案分层:从编译配置到显式注解,分步骤解决参数解析问题。最佳实践:结合和 DTO 设计,提升代码可维护性。原创 2025-04-03 21:42:22 · 1910 阅读 · 0 评论 -
Spring Boot 2.x 到 3.x 迁移实战:Redis 配置篇
的深化,Redis 配置与集成方式发生了显著变化。今天简单讲下redis的变化。Spring Boot 3.x 的配置调整并非简单的语法变化,而是。随着 Spring Boot 3.x 的发布,其对。原创 2025-03-28 20:49:38 · 1601 阅读 · 0 评论 -
Spring Boot 配置元数据文件 spring-configuration-metadata.json
在 Spring Boot 的开发过程中,配置文件(如或)的管理和维护是至关重要的一环。然而,随着项目规模的扩大,手动编写配置项容易出现拼写错误、遗漏或理解偏差。为解决这一问题,Spring Boot 提供了 spring-configuration-metadata.json这一配置元数据文件,它通过IDE 智能提示类型安全约束和自动生成文档,显著提升了开发效率和配置的健壮性。结合:当开发者定义自定义配置类时,通过注解绑定属性,元数据文件会自动生成对应的配置项描述,确保 IDE 能识别这些属性。示例。原创 2025-03-28 09:30:00 · 1266 阅读 · 0 评论 -
为什么 Spring Boot 官方不再建议使用 @Autowired???
在现代Spring Boot应用开发中,依赖注入(Dependency Injection, DI)是构建灵活且可维护应用程序的关键。随着Spring框架的发展和最佳实践的不断演进,官方逐渐倾向于推荐构造器注入,并结合Lombok库提供的注解来简化代码。采用构造器注入配合Lombok的注解,不仅可以简化代码,还可以提高代码的质量,包括但不限于增强不可变性、提升线程安全性和改善错误检测机制。这种方式不仅符合现代Spring应用的最佳实践,同时也让开发者能够专注于业务逻辑的实现,而不是纠结于基础设施的细节。原创 2024-12-25 09:30:00 · 727 阅读 · 0 评论 -
解决Spring框架中`@Value(“${xxx}“)`引发的`IllegalArgumentException`
解决Spring框架中`@Value("${xxx}")`引发的`IllegalArgumentException`原创 2024-07-24 20:15:32 · 1751 阅读 · 0 评论 -
Spring Boot内置Tomcat的运行机制
Spring Boot内置Tomcat的运行机制原创 2024-02-05 09:00:00 · 695 阅读 · 0 评论 -
Spring Boot中的@Profile注解:环境特定配置的艺术
Spring Boot中的@Profile注解:环境特定配置的艺术原创 2024-01-30 09:00:00 · 476 阅读 · 0 评论 -
SpringBoot全局异常处理器
在Spring Boot中运用全局异常处理器进行统一的后端异常处理与响应定制,增强系统稳定性和用户体验原创 2024-01-07 18:29:58 · 996 阅读 · 1 评论