事务管理思考

tlsmile 2019-12-23

orm dao关心sql生成、参数绑定、结果映射

service层使用事务

事务管理的基础是基于同一个数据库链接;多线程公用一个数据库连接会发生回滚;不同线程使用不同的连接的办法是使用threadlocal;

spring是胶水层、提供的功能都是集成过来的;

理论是实践之后的产物

注解的核心是aop   cglib proxy

基于spring的aop @Enable,除了注解方式 患有xml配置的方式

@Aspect

public class MyTransactionAspect{

@Around("@anotation(Mytransaction)")   /@Before

public Object doTransactional(ProceedingJoinPoint p ){}

 .....

object o = p.proceed();

.....

}

框架也是逐步封装,所有技术都是演进的;封装的难点是多线程

aop把try{}catch、打开链接、关闭连接的代码提取出来了

相关推荐