引入AOP依赖
@Aspect 申明为AOP类
@Around 功能加到哪些方法上
切入点表达式 : 返回值 包名 + 类名 + 方法(方法参数, … 代表任意参数)
执行业务层方法时,运行共性方法
事物通过AOP实现
原始方法前开启事物,原始方法结束后 提交/回滚事物
AOP核心概念
为目标对象生成代理对象,程序执行的时候注入的是代理对象
调用代理对象的list方法,已经进行了功能的增强
通知类型
环绕通知,原始方法之前和之后都可以执行
要在代码中执行原始方法
抽取切入点表达式
引用切入点表达式,
要在其他类中使用,pointcut修饰的方法改为public
通知顺序
和切面类的类名排序有关
控制执行顺序@order(数字)
切入点表达式
execution切入点表达式,根据实现类描述
- 根据实现类描述
- 根据接口描述
@annotation切入点表达式
匹配有特定注解的方法
传入注解的全类名
自定义注解MyLog,要匹配哪个方法就在方法上加注解
在切入点表达式annotation中指定自定义的注解
连接点
可以被AOP控制的方法
可以获得目标方法的 方法名 参数 类名等信息
需要从httpservlet中获取用户id,直接注入httpservlet(直接注入,是因为容器中有这个对象?)