-
1.今日任务
-
AOP【Aspect Oriented Programming】
- 面向切面编程【struts2拦截器】
-
相关概念
- 通过预编译方式和运行期动态代理实现在不修改源代码的情况
下给程序动态统一添加功能的一种技术
- 就是在原直线编程的某处咔嚓一下,加点动西,而且不影响原来的代码。
- 可以用在日志,加权限,事物,异常管理等方面。
-
AOP术语
-
切面(aspect)
- 用来切插业务方法的类
-
连接点(joinpoint)
- 是切面类和业务类的连接点,其实就是封装了业务方法的一些基本属性,作为通知的参数来解析。
-
通知(advice)
- 在切面类中,声明对业务方法做额外处理的方法
-
切入点(pointcut)
- 业务类中指定的方法,作为切面切入的点。其实就是指定某个方法作为切面切的地方。
-
目标对象(target object)
- 被代理对象
-
AOP代理(aop proxy)
- 代理对象
-
前置通知(before advice)
- 在切入点之前执行
-
后置通知(after returning advice)
- 在切入点执行完成后,执行通知
-
环绕通知(around advice)
- 包围切入点,调用方法前后完成自定义行为
-
异常通知(after throwing advice)
- 在切入点抛出异常后,执行通知
-
案例
-
1.在某个方法执行的前后添加日志
- 1.UserService
- 2.LogUtils
- 3.application.xml
-
2.事务控制
- 要么同时成功【提交】要么同时失败【回滚】
- 事务的处理方式
- 编程式
- 纯代码--代码量大,不推荐
- 声明式
- 配置式,常用
- 配置步骤
- 在周五的案例的service中同时调用add和update方法
- 事务的传播行为
- 事务嵌套事务时的方式
-
Struts2+Spring整合多表案例
-
项目分析
-
用户,角色,权限
-
一定要保证在同一个事务中
-
代码注意的地方
- 2.作业
- 3.面试题