AOP(术语)
1、 连接点:能被增强的方法称为连接点
2、 切入点:实际上被增强的方法称为切入点
3、 通知(增强):实际上被增强的逻辑部分 。
通知有多种类型:
l 前置通知:执行方法前通知
l 后置通知:执行方法后通知
l 环绕通知:执行方法前后都通知
l 异常通知:出现异常时通知
l 最终通知:finally
4、 切面:把通知应用到切入点
AOP准备工作
1、Spring框架一般基于AspectJ实现AOP操作
AspectJ不是Spring的部分,独立于AOP框架,一般一起使用进行AOP操作
2、基于AspectJ实现AOP操作
(1) 基于xml配置文件实现
(2) 基于注解实现
3、在项目工程里引入AOP相关依赖
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K5X9JoPS-1638706935261)(file:///C:/Users/Lenovo/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)]
4、切入点表达式
execution([权限修饰符][返回类型][类全路径][方法名称]([参数列表]))
例1:对com.mjc.Spring5.dao.BookDao里面的add方法进行增强
execution(*com.mjc.Spring5.dao.BookDao.add(…))
例2:对com.mjc.Spring5.dao.BookDao里面的所有方法进行增强
execution(com.mjc.Spring5.dao.BookDao.(…))
例3:对com.mjc.Spring5.dao包里面的所有类的所有方法进行增强
execution(com.mjc.Spring5.dao..*(…))
AOP AspectJ注解配置
1、创建类,定义方法
@Component
public class User {
public void add(){
System.out.println("add...");}}
//增强类,增加注解@Aspect
@Component
@Aspect
public class UserProxy {
public void before()