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、打开链接、关闭连接的代码提取出来了