transaction 第二部分
之所以称之为第二部分是因为这部分主要在 JdkDynamicAopProxy 类,之后的操作。第一次读源码,有啥偏差的地方,大虾们拍砖拍砖……
时序图
- 开始之前先看一个时序图(画的不好,估计也就我自己看得懂 emmmmmmm)
这个图,一个简单的流程。如果非要说UserService.save()
方法为啥直接到JdkDynamicAopProxy.invoke()
方法。那是动态代理的结果,也叫动态增强,关于那部分的内容下篇博客会概括,预计2天后的周五吧。还有,这样类似的博客有很多
环境配置 (部分)
- Spring xml配置文件
<tx:annotation-driven/>
<bean id="userService" class="com.yhj.jdbc.service.impl.UserServiceI">
<property name="dataSource" ref="dataSource"/>
<property name="gameService" ref="gameService"/>
</bean>
<bean id="gameService" class="com.yhj.jdbc.service.impl.GameServiceI"/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">