配置 /** * @Author: gaoxinyu * @Date: 2025/6/8 9:59 * @Version: 1.0 **/ @Configuration public class Re…
mybatis工作流程 1. 读取配置文件 MyBatis 需要加载 核心配置文件 mybatis-config.xml 和 映射文件 XXXMapper.xml: mybatis-config.xm…
循环依赖 如何解决:三层缓存(1.完整Bean 2.半成品Bean 3.Bean工厂) 为什么需要三级缓存,二级缓存不行: 三级缓存(存储用于创建代理对象的 ObjectFactory)…
Spring容器启动 Bean生命周期 容器启动: 1.创建 ApplicationContext 2.加载 Bean 定义(读取配置文件.java类) 3.创建 BeanDefinition 4.实…
导致声明式事务失效的场景 1.方法非 public 修饰:代理(JDK or CGLib)默认都是代理public方法(接口中的方法都是public的) 2.rollbackfor设置不当 3.事务传…
spring事务的传播机制 1.require(默认) 作用:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新事务。 场景:大多数业务方法都使用此传播行为。 解释:如果 methodA …
AOP实现方式 参考文章 原理:在ioc中创建了一个原对象的代理对象,而这个对象是AOP增强过的。 动态代理 JDK 1.1 实现接口 interface UserService{ vo…
为什么不用BeanUtils.copyProperties? 因为 BeanUtils 低效(反射) MapStruct 在编译时生成代码,不会使用反射机制 1. 入门 1.1 安装 <!-- …
1. 添加junit依赖 在springboot-boot-starter-test中已经包含了此依赖, 可以不用添加 <dependency> <groupId>org.ju…
1. mybatis安装入门使用 1.1 安装 <!--mybatis-plus--> <dependency> <groupId>com.baomidou<…