
文章插图
1.springMVC的入口是servlet , 而struts2是filter;
2.springmvc 会比struts2快些 , springmvc是基于方法设计 , 而sturt2是基于类 , 每次发一次请求都会实例一个action;
3.springmvc 使用更加简洁 , 开发效率springmvc比struts2高;
spring 事务管理器:spring并不是直接管理事务 , 而是提供了多种事务管理器 , 他们将事务管理的职责委托给hibernate或者jta等待持久化机制所提供的相关平台框架的事务来实现;
spring 事务: 1.编程式事务控制; jdbc代码 hibernate事务
声明事务:spring 声明式事务管理 , 核心实现就是基于aop
spring声明式是为管理类:
jdbc技术:DataSourceTransactionManager
Hibernate技术:HibernateTransationManager
spring session

文章插图
web.xml 配置filter: springSessionRepositoryFilter
spring的七种事物传播行为:PROPAGATION_REQUIRED 如果当前没有事务 , 就新建一个事务 , 如果已经存在一个事务中 , 加入到这个事务中 。这是最常见的选择 。
PROPAGATION_SUPPORTS 支持当前事务 , 如果当前没有事务 , 就以非事务方式执行 。
PROPAGATION_MANDATORY 使用当前的事务 , 如果当前没有事务 , 就抛出异常 。
PROPAGATION_REQUIRES_NEW 新建事务 , 如果当前存在事务 , 把当前事务挂起 。
PROPAGATION_NOT_SUPPORTED 以非事务方式执行操作 , 如果当前存在事务 , 就把当前事务挂起 。
PROPAGATION_NEVER 以非事务方式执行 , 如果当前存在事务 , 则抛出异常 。
PROPAGATION_NESTED 如果当前存在事务 , 则在嵌套事务内执行 。如果当前没有事务 , 则执行与PROPAGATION_REQUIRED类似的操作 。
aop底层实现原理:代理设计模式:通过代理控制对象的访问 , 可以想象访问某个对象方法 , 在这个方法调用处理 , 或者调用后处理 , aop的核心技术面相切面编程;
@Aspect 指定一个类为切面类
@Pointcut("execution(* com.itmayiedu.service.UserService.add(..))") 指定切入点表达式
@Before("pointCut_()") 前置通知: 目标方法之前执行
@After("pointCut_()") 后置通知:目标方法之后执行(始终执行)
@AfterReturning("pointCut_()")返回后通知: 执行方法结束前执行(异常不执行)
@AfterThrowing("pointCut_(_()") 异常通知: 出现异常时候执行
@Around("poinrcut_()") 环绕通知:环绕目标方法执行
@before("execution(* com.muth.service.userservece.add(..))")
【spring框架史上最全深入理解】
推荐阅读
- 历史上刘禅是个什么人物 三国的刘禅真正历史是什么样
- 关于并发框架 Java原生线程池原理及Guava与之的补充
- 人工智能开发 网络爬虫框架Webmagic
- 世界上制作成本最高的电影 史上耗资最贵的电影
- 著名的rpg游戏 世界上最早的rpg游戏
- 一 凤宁s历史上最出名的红茶
- 历史上真的有陈世美这个人吗 古代陈世美是个什么样的人
- .net开源框架简介和通用技术选型建议
- Java后端精选技术:Spring框架简介
- Spring核心配置文件分析
