
spring源码
文章平均质量分 95
spring源码
tomjourney
积善之家 必有余庆
展开
-
spring声明式事务原理02-调用第1层@Transactional方法-按需创建事务createTransactionIfNecessary
【DataSourceTransactionManager#doGetTransaction】创建逻辑事务创建DataSourceTransactionObject-逻辑事务对象;根据数据源从TransactionSynchronizationManager获取连接持有器;把数据库连接持有器conHolder绑定到逻辑事务对象;第1层@Transactional方法不走这个分支,即事务不存在;若存在,则调用 handleExistingTransaction;【本文不涉及】原创 2025-03-16 15:11:18 · 702 阅读 · 0 评论 -
spring声明式事务原理01-调用第1层@Transactional方法(事务访问入口)
transactionManager:事务管理器(封装了事务提交,回滚功能)TransactionAttribute:事务属性 (@Transaction注解元数据)joinpointIdentification:切点标识(被@Transaction标注的目标方法的全限定名称)TransactionStatus:事务状态 (封装获取事务状态的方法,如是否只读,是否回滚,是否保存点,事务是否完成,当前线程是否存在事务等)oldTransactionInfo-上一个事务信息对象;原创 2025-03-16 11:40:36 · 777 阅读 · 0 评论 -
spring声明式事务@Transactional底层原理
1. Mybatis是如何整合进Spring中的 - Spring如何知道哪些接口是Mapper接口的?- Mapper接口是如何变成Spring Bean的?2. Spring在哪里声明的SqlSession的实现逻辑?3. Spring中声明式事务的实现方式是怎样的?4. Spring中如何处理嵌套事务的?5. Spring中事务的传播方式是如何实现的?一篇文章带你了解Spring声明式事务的底层实现原理。【1】一篇文章带你了解Spring声明式事务的底层实现原理。转载 2025-03-06 23:05:12 · 52 阅读 · 0 评论 -
spring源码02-spring容器启动(容器初始化+bean实例化)源码解读【常见面试题】
步骤1)容器初始化;初始化属性源,替换属性占位符 , 保存应用监听器;步骤2) 获取最新BeanFactory;步骤3)初始化BeanFactory;新增资源编辑器注册器-ResourceEditorRegistrar , 新增Bean后置处理器ApplicationContextAwareProcessor,ApplicationListenerDetector;忽略依赖接口, 注册可处理器依赖步骤4)允许子类自行定义BeanFactory的后置处理逻辑;原创 2024-11-17 14:05:14 · 892 阅读 · 0 评论 -
spring源码01-spring容器启动流程概述
step1)prepareRefresh():刷新容器的准备工作,包括初始化属性源,并校验属性,保存应用监听器;step2)obtainFreshBeanFactory():获取最新容器,包括把容器hashcode赋值给BeanFactory的序列化id。原创 2024-11-17 11:06:10 · 1059 阅读 · 0 评论