AOP配置 基于xml
切入点表达式:方法签名描述
方法签名:访问修饰符返回值类型〔包.类.]方法名(参数列名)throws 异常声明;语法:
execution(修饰符?返回值 方法名(参数) 异常?)
注意:
?:0或者1个通配符:
* : 任意 用于返回值,方法名,类名
.. : 任意包中使用: ..:表示该包,以及该包后代包任意类型的参数
加一个点:不包含子包了 加两个点包含子包
以user结尾 可以被获取
此时它的后置增强没有执行了,说明后置增强需要正常执行才执行
这里要用到异常增强->所有异常类型的
增强只能有一个,请注释掉一个
最终增强
环绕增强
好处:可以阻止目标方法自我执行,但是ProceedingJoinPoint只能在环绕增强使用
只配置一个环绕增强
环绕增强:一个顶四个
AOP配置 基于注解
直接在增强的类上配置信息
在增强方法上加上相关的注解
此时增强不生效 注解不被扫描 结果不会显示 没有告诉Spring是一个增强类
加上注解@Aspect 表示这是一个通知类/增强类
扫描注解
问题?->切入点表达式的一个简化,一个类可以有多个切入点表达式(id不同就可以)
作业:
使用jdbc写在用户管理系统中,tb_userinfo 表中添加四个字段 create_time create_by (admin表)
update_time update_by
原先改/添数据需要改多个字段
使用AOP实现:
添加操作.往数据库中这条记录添加create_time:创建时间, create_by:创建者
如果是修改操作:往数据库中这条记录添加create_time:创建时间, create_by:创建者
一.
alter table tb_userinfo
add create_time datetime,
add create_by varchar(50),
add update_time datetime,
add update_by varchar(50);
二.