摘要:@PostConstruct 的执行顺序和时间 @PostConstruct 注解的方法是 在依赖注入完成后、对象完全初始化之前 自动调用的。也就是说,它会在类的构造函数和任何字段注入(如通过 @Autowired 注入的依赖)完成之后调用,但在对象准备好处理请求之前执行。它通常用于初始化逻辑。 执
阅读全文
文章分类 - Spring boot
摘要:@PostConstruct 的执行顺序和时间 @PostConstruct 注解的方法是 在依赖注入完成后、对象完全初始化之前 自动调用的。也就是说,它会在类的构造函数和任何字段注入(如通过 @Autowired 注入的依赖)完成之后调用,但在对象准备好处理请求之前执行。它通常用于初始化逻辑。 执
阅读全文
摘要:1. Spring 的循环依赖 Spring 容器在实例化和注入 Bean 时,如果存在两个或多个 Bean 相互依赖的情况(即循环依赖),Spring 是如何解决的? 在 早期版本 的 Spring 中,循环依赖是 不被支持的,即如果两个 Bean 相互依赖,Spring 会抛出异常:BeanCu
阅读全文
摘要:下面是 HikariDataSource、DataSource、SqlSession、SqlSessionFactory 和 JdbcTemplate 之间的关系: 1. DataSource 定义:DataSource 是 Java 标准接口,用于获取数据库连接。它是数据库连接池或数据库连接管理的
阅读全文
摘要:@ExceptionHandler 是 Spring Framework 中的一个注解,主要用于处理控制器方法中抛出的异常。它能够捕获指定类型的异常并进行处理,通常与 @ControllerAdvice 配合使用,用来集中处理应用程序中的异常。 主要用途: 捕获和处理控制器层的异常:@Excepti
阅读全文
摘要:MyBatis Generator (MBG) 使用说明文档,涵盖了使用方式、配置详解、Maven 插件集成、常见问题与优化建议,非常适合作为项目文档或学习笔记保存: 🧩 MyBatis Generator 使用说明(完整实用版) MyBatis Generator(简称 MBG)是官方提供的代码
阅读全文
摘要:逐步构建起对 Spring Boot 中数据库访问体系的完整理解。下面我将融合你提出的所有点,给出一份 全面的总结,包括结构图、各依赖职责、最小依赖组合、以及各层关系。 🧠 一、什么是 JDBC? JDBC(Java Database Connectivity) 是 Java 官方制定的一套访问数
阅读全文
摘要:系统地解释了: ✅ Spring Boot 与 Spring Cloud 的版本兼容关系 ✅ 官方地址与版本对照表的解读 ✅ 如何在 Maven 中使用和管理 BOM(Bill of Materials) ✅ 为什么要用 <dependencyManagement> ✅ 实战中最佳的版本管理做法 �
阅读全文
摘要:❓ “Lettuce 是什么?它在 Redis 集群架构中处于什么角色?” ✅ 一句话快速解释: Lettuce 是一个 Java 客户端库,用来连接和操作 Redis 服务器,包括支持单机、哨兵、集群等模式。 它和 Redis 集群服务器之间的关系是: 客户端 ↔ 服务端 调用者 ↔ 被调用者 数
阅读全文
摘要:HikariDataSource 中包含 DataSource, DataSource 中是数据库主要管理数据库的真实连接信息, HikariDataSource通过DataSource中的信息创建并管理着多个物理连接Connection, SqlSession获取 HikariDataSource
阅读全文
摘要:@DateTimeFormat 和 @JsonFormat 都可以用于控制 日期格式的转换,但它们作用的时机和目标完全不同: 🧩 核心区别概览 对比项 @DateTimeFormat @JsonFormat 📦 所属框架 Spring(Spring MVC 数据绑定) Jackson(JSON
阅读全文
摘要:@DateTimeFormat 和 Formatter 都用于在 Spring 中进行 字符串与 Java 类型之间的格式转换,尤其常用于处理日期类型。但它们的用途、灵活性和使用方式有所不同。 🆚 核心区别对比 对比项 @DateTimeFormat 注解 Formatter 接口 📌 适用范围
阅读全文
摘要:Formatter 接口在 Spring 中的主要作用是: 👉 在用户输入的字符串和 Java 对象之间进行格式转换,尤其用于 Web 表单数据的绑定和显示。 它是 Spring format 包中的一部分,是 Spring 类型转换机制中的重要组成,用于处理带格式的数据(如日期、数字、自定义类型
阅读全文
摘要:只测试 Mapper 层(比如 MyBatis、MyBatis-Plus、JPA Repository)可以使用轻量级的注解配置,比如: ✅ 用 @MybatisTest (推荐) 适用于只测 Mapper(不启动 Web 层、Service 层) @MybatisTest @AutoConfigu
阅读全文
摘要:用 @WebMvcTest + @Import(UserServiceImpl.class) 的组合,Spring 容器只加载你显式指定的部分内容,不会像 @SpringBootTest 那样把整个应用都拉起来。 🔍 来具体拆解一下: 🌱 @WebMvcTest(UserController.c
阅读全文
摘要:Hibernate 的自动更新机制虽方便,但我们该如何避免它对“没有变更的数据”也执行 UPDATE 呢? 👇下面是几种实用的方法来 避免不必要的更新操作: ✅ 1. 确保只在真正修改数据时才调用 setter Hibernate 是通过**字段变更检测(dirty checking)**判断是否
阅读全文
摘要:✅ 是的: return "viewName"; 这句代码 只是告诉 Spring MVC 该使用哪个视图来渲染(比如 JSP、Thymeleaf、Freemarker 等页面模板),而不是返回一个静态页面。 ✅ 动态数据从哪来? 通过 Model 或 ModelAndView 来传入! 🔹 使用
阅读全文
摘要:Spring MVC 确定视图类型(JSP、Thymeleaf、Freemarker)主要依赖于 视图解析器(ViewResolver) 的配置。具体来说,Spring 会通过以下几种方式判断 当前使用的视图类型: 1. 通过 Spring Boot 自动配置 如果你使用 Spring Boot,S
阅读全文
摘要:在 Spring MVC 中,视图名称(View Name) 和 视图解析器(ViewResolver) 主要用于 将控制器返回的逻辑视图名映射到具体的视图文件(如 JSP、Thymeleaf、Freemarker 等)。 1. 什么是视图名称(View Name)? 当 Controller 方法
阅读全文
摘要:Spring MVC(Model-View-Controller)是 Spring 框架 提供的 基于 Java 的 Web 框架,用于构建 可扩展、可维护的 Web 应用。 它基于 MVC 设计模式,将应用逻辑分离为 模型(Model)、视图(View)和控制器(Controller),使代码更清
阅读全文
|