11-15 AOP配置

AOP配置 基于xml

11-15 AOP配置_第1张图片

11-15 AOP配置_第2张图片

11-15 AOP配置_第3张图片

切入点表达式:方法签名描述
方法签名:访问修饰符返回值类型〔包.类.]方法名(参数列名)throws 异常声明;

语法:
execution(修饰符?返回值 方法名(参数) 异常?)

注意:
?:0或者1个

通配符:
* : 任意   用于返回值,方法名,类名
.. : 任意包中使用: ..:表示该包,以及该包后代包任意类型的参数

11-15 AOP配置_第4张图片

加一个点:不包含子包了  加两个点包含子包

11-15 AOP配置_第5张图片

以user结尾  可以被获取

11-15 AOP配置_第6张图片

11-15 AOP配置_第7张图片

此时它的后置增强没有执行了,说明后置增强需要正常执行才执行

这里要用到异常增强->所有异常类型的

11-15 AOP配置_第8张图片

11-15 AOP配置_第9张图片

增强只能有一个,请注释掉一个

11-15 AOP配置_第10张图片

最终增强

11-15 AOP配置_第11张图片

11-15 AOP配置_第12张图片

环绕增强

好处:可以阻止目标方法自我执行,但是ProceedingJoinPoint只能在环绕增强使用

11-15 AOP配置_第13张图片

11-15 AOP配置_第14张图片

11-15 AOP配置_第15张图片

11-15 AOP配置_第16张图片

只配置一个环绕增强

11-15 AOP配置_第17张图片

11-15 AOP配置_第18张图片

环绕增强:一个顶四个

AOP配置 基于注解

直接在增强的类上配置信息

在增强方法上加上相关的注解

11-15 AOP配置_第19张图片

11-15 AOP配置_第20张图片

11-15 AOP配置_第21张图片

11-15 AOP配置_第22张图片

此时增强不生效  注解不被扫描 结果不会显示 没有告诉Spring是一个增强类

加上注解@Aspect  表示这是一个通知类/增强类

11-15 AOP配置_第23张图片

扫描注解

11-15 AOP配置_第24张图片

11-15 AOP配置_第25张图片

问题?->切入点表达式的一个简化,一个类可以有多个切入点表达式(id不同就可以)

11-15 AOP配置_第26张图片

11-15 AOP配置_第27张图片

11-15 AOP配置_第28张图片

11-15 AOP配置_第29张图片

作业:

使用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);

二.

你可能感兴趣的:(spring,java,spring,开发语言)