
Spring参考手册
文章平均质量分 90
工作学习中,整理收纳的Spring相关知识。记录在此,方便之后使用查询。
黑风风
这个作者很懒,什么都没留下…
展开
-
SpringBoot监听应用启动和优雅停机
在 Spring Boot 中,监听应用的启动和优雅停机(graceful shutdown)可以使用 `ApplicationListener` 监听 `ApplicationReadyEvent` 和 `ApplicationFailedEvent` 事件,同时通过 `@PreDestroy` 或 `DisposableBean` 处理关闭逻辑。原创 2025-03-18 08:30:00 · 822 阅读 · 0 评论 -
深入解析 Spring Boot 中的 FailureAnalyzer
在 Spring Boot 应用中,我们难免会遇到启动失败的情况,而默认的异常信息往往过于复杂,导致排查问题变得困难。**Spring Boot 提供了一套强大的 FailureAnalyzer 机制,能够捕获常见的异常并提供清晰的错误提示,让开发者更快定位问题。**原创 2025-03-17 10:05:11 · 1115 阅读 · 0 评论 -
深入理解Spring Boot Starter及如何自定义Starter
Spring Boot Starter本质上是一种依赖管理和自动配置机制。通过引入一个Starter依赖,可以自动引入并配置一系列相关组件,极大地简化开发流程。比如使用`spring-boot-starter-web`,可以自动引入Spring MVC、Tomcat服务器、JSON解析器等,无需手动逐个配置。原创 2025-03-14 17:20:06 · 1168 阅读 · 0 评论 -
Spring Boot:如何在业务项目中覆盖基础项目的默认实现
在 Spring Boot 项目中,我们通常会将一些通用的功能封装到基础项目(基础模块)中,而业务项目则依赖于这个基础项目。但是,实际开发过程中,业务项目可能需要自定义某些功能的实现,而不是直接使用基础项目提供的默认实现。原创 2025-03-14 17:19:19 · 1236 阅读 · 0 评论 -
深入理解 Spring MVC 中的 @ModelAttribute 注解
`@ModelAttribute` 是 Spring MVC 中一个很重要和常用的注解,它在应用中为模型数据的初始化和请求参数绑定提供了极大方便。在本文中,我们将对 `@ModelAttribute` 进行全方位的分析和讨论。原创 2025-01-08 07:00:00 · 597 阅读 · 0 评论 -
Spring Boot Kotlin 项目用gradle构建运行时报错 “NoSuchMethodException“ 的问题排查与解决
使用 Kotlin 和 Spring Boot 构建 REST 服务。在 Kotlin 中,顶层函数默认会被编译到独立的类中,并添加。但 Spring Boot 默认查找入口方法时,只会寻找。这导致 Spring Boot 无法找到正确的入口方法,抛出。,因为它简单且更符合 Kotlin 的特性,无需改变代码逻辑。无论采用哪种方案,重新构建后,确保 JAR 包的。后缀类中),只需修改 Gradle 的。为了兼容 Java 的传统规范,可以将。检查生成的类文件,发现。检查生成的类文件,确认。原创 2025-01-06 08:00:00 · 895 阅读 · 0 评论 -
Spring Boot 和 Spring Cloud 版本兼容性对照指南
Spring Boot 和 Spring Cloud 是 Java 开发领域的黄金搭档。一个主打快速构建独立运行的微服务应用,另一个提供了微服务体系架构的核心功能,例如配置管理、服务发现、负载均衡等。然而,这两个框架的版本更新频率不一致,经常让开发者在版本选择上“头秃”。原创 2025-01-04 09:00:00 · 3241 阅读 · 0 评论 -
Spring Cache 操作详解
在现代的应用程序中,缓存是提升性能、减少数据源压力的重要手段之一。Spring Boot 提供了一个简洁的缓存抽象框架——`spring-boot-starter-cache`,而 Redis 作为一个高性能的内存数据库,是缓存实现的理想选择。本文将介绍如何结合 Spring Boot Starter Cache 与 Redis 来实现缓存管理。原创 2025-01-04 08:00:00 · 715 阅读 · 0 评论 -
MyBatis 常用 XML 语法参考
本文将为你汇总 MyBatis 常用 XML 语法,便于查询和使用。原创 2025-01-01 08:00:00 · 676 阅读 · 0 评论 -
使用 `@Async` 实现 Spring Boot 异步编程
异步处理是一项非常重要的技术。它可以提高应用性能,让耗时的操作(如数据库操作、文件处理、API调用等)在后台进行,避免阻塞主线程,提升用户体验。Spring Boot 为异步编程提供了非常简便的方式,那就是 `@Async` 注解。本篇文章将深入探讨如何在 Spring Boot 中使用 `@Async` 来实现异步方法调用。原创 2024-12-31 11:34:43 · 980 阅读 · 0 评论 -
在Spring Boot中如何控制使用特定的实现类
在Spring Boot开发中,通常我们会面临接口有多个实现类的情况。例如,假设我们有一个`NameQueryService`接口,该接口有多个实现类,比如`ANameQueryServiceImpl`和`BNameQueryServiceImpl`。在某些情况下,我们只希望使用其中一个实现类,而不使用其他实现类。本文将详细介绍如何在Spring Boot中通过多种方式控制和选择想要的实现类。原创 2024-09-24 09:00:00 · 1715 阅读 · 0 评论 -
Spring Cache 操作详解
在现代的应用程序中,缓存是提升性能、减少数据源压力的重要手段之一。Spring Boot 提供了一个简洁的缓存抽象框架——,而 Redis 作为一个高性能的内存数据库,是缓存实现的理想选择。本文将介绍如何结合 Spring Boot Starter Cache 与 Redis 来实现缓存管理。首先,在 Spring Boot 项目中集成 Redis 和缓存功能,需要在 中添加相关依赖。 提供了 Spring 的缓存抽象,而 使我们能够使用 Redis 作为缓存存储。在 或 中配置 Redis 连接原创 2024-07-02 08:30:50 · 1464 阅读 · 0 评论 -
关于Redisson分布式锁的用法
Redisson是一个基于Redis的Java分布式对象和服务框架,它提供了多种分布式锁的实现,包括可重入锁、公平锁、读写锁等。Redisson实现分布式锁的核心原理主要依赖于Redis的数据结构和Redisson框架提供的高级功能。原创 2024-06-30 09:58:22 · 636 阅读 · 0 评论 -
自定义一个MyBaits脱敏插件
用于对查询结果中的敏感数据进行脱敏处理。这个插件将拦截`ResultSetHandler`对象的处理结果,对某些敏感字段进行脱敏。原创 2024-06-29 12:21:23 · 467 阅读 · 0 评论 -
详细解释Spring事务的传播机制
Spring框架中,事务传播机制是指在一个事务方法调用另一个事务方法时,Spring如何管理这些方法之间的事务边界。Spring提供了七种事务传播行为,以满足不同的业务需求。下面将详细解释每种传播行为及其适用场景,并探讨在特定情况下事务的行为。原创 2024-06-27 12:32:22 · 1443 阅读 · 0 评论 -
如何在SpringBoot中自定义starter
Spring Boot 提供了一种简便的方法来创建自定义的 starter,从而帮助开发者封装常用的配置和依赖。本文将介绍如何在 Spring Boot 中自定义一个 starter。原创 2024-06-25 17:56:04 · 672 阅读 · 0 评论 -
SpringBoot的事务注解
在Spring Boot应用中,事务管理是一个关键的部分,尤其是当涉及到数据库操作时。Spring Boot提供了强大的事务管理支持,使得开发人员可以通过简单的注解来控制事务的边界和行为。本文将介绍如何在Spring Boot中使用事务注解来管理事务。原创 2024-06-10 10:44:13 · 1004 阅读 · 0 评论 -
解决MyBatis的N+1问题
N+1问题通常出现在一对多关联查询中。当我们查询主表数据(如订单)并希望获取关联的从表数据(如订单的商品)时,如果每获取一条主表记录都要执行一次从表查询,就会产生N+1次查询的问题。假设有10个订单,主查询执行1次,从查询执行10次,总共执行了11次查询。这种情况显然会导致性能低下。原创 2024-06-04 12:47:36 · 759 阅读 · 0 评论 -
Eureka详解
Eureka是Netflix开源的一款服务发现工具,广泛应用于微服务架构中。它主要解决了服务之间相互查找和通信的问题。本文将详细介绍Eureka的基本概念、核心组件、工作原理以及在Spring Cloud中的使用方法。原创 2024-05-21 11:17:43 · 1006 阅读 · 0 评论 -
如何在Spring启动的时候执行一些操作
在Spring启动的时候执行一些操作有多种方式。你可以通过实现`ApplicationRunner`或者`CommandLineRunner`接口,在Spring Boot应用程序启动后执行特定操作。另外,你也可以使用`@PostConstruct`注解,在Spring Bean初始化后立即执行特定操作。此外,Spring Boot还提供了事件机制,你可以使用`ApplicationListener`接口或者`@EventListener`注解来监听应用程序的不同阶段,并在触发事件时执行相应的操作。原创 2024-05-16 10:04:58 · 1681 阅读 · 0 评论 -
SpringBoot中使用Jackson序列化返回
在Spring Boot应用中,使用Jackson库来处理JSON的序列化和反序列化是一种常见的做法。Jackson是一个高效的JSON处理器,广泛用于Java环境中,尤其是在与Spring框架集成时。本文将详细介绍如何在Spring Boot中配置和使用Jackson,以实现复杂对象的序列化。原创 2024-04-12 15:22:02 · 1856 阅读 · 2 评论 -
ControllerAdvice用法
`@ControllerAdvice`是一个组件注解,它允许你在一个地方处理整个应用程序控制器的异常、绑定数据和预处理请求。这意味着你不需要在每个控制器中重复相同的异常处理代码,从而使得代码更加简洁、易于管理。原创 2024-04-12 10:14:01 · 1219 阅读 · 0 评论 -
SpringBoot定时任务
SpringBoot的定时任务功能是基于Spring的`@Scheduled`注解实现的。它允许开发者以声明式的方式,简单快速地添加定时任务到应用中。原创 2024-03-31 16:41:35 · 608 阅读 · 0 评论 -
SpringBoot 中使用自定义参数解析器修改请求对象
在 SpringBoot 应用中,有时我们需要在控制器方法执行之前对请求对象进行修改。自定义参数解析器提供了一种灵活的方式来实现这一需求。原创 2024-03-13 09:51:47 · 1548 阅读 · 0 评论 -
SpringBoot 过滤器
SpringBoot 是一种广泛使用的 Java 框架,用于创建微服务和企业级应用程序。它提供了许多功能,包括用于处理 HTTP 请求和响应的过滤器。在 SpringBoot 中,过滤器是一种组件,它允许您在请求到达控制器之前和响应发送回客户端之后执行特定的操作。原创 2024-03-12 15:59:09 · 1107 阅读 · 0 评论 -
SpringBoot 拦截器
SpringBoot 拦截器(Interceptor)是一种强大的工具,它允许我们在请求处理的不同阶段执行特定的操作。拦截器可以用于多种场景,如日志记录、身份验证、性能监控等。原创 2024-03-12 15:56:35 · 938 阅读 · 0 评论 -
在 Linux 中优雅地启动与停止 Spring Boot 项目
本文将介绍在 Linux 系统中如何优雅地启动和停止 Spring Boot 项目。使用 `nohup`、`screen` 以及 `systemd` 的方法。每种方法都有其优势,选择哪种方法取决于你的具体需求和使用场景。原创 2023-05-05 16:40:52 · 3573 阅读 · 0 评论 -
Spring对于循环依赖是如何解决的
随着项目的不断扩大,依赖关系的复杂度也在不断增加。在这种情况下,循环依赖问题就显得尤为突出。Spring框架作为一种广泛使用的Java企业级应用开发框架,为开发者提供了一套优雅的解决方案来应对循环依赖。在本篇文章中,我们将探讨Spring是如何解决循环依赖的。原创 2023-04-06 11:35:24 · 357 阅读 · 0 评论