2222222222222222222222222222222222
课程总结:
1.面向切面编程是对面向对象编程的补充,主要用于日志记录,权限验证,事务配置等功能。
2.使用aspectJ实现aop,aspectJ是一个面向切面的框架,它扩展了Java语言。
3.主要注解:
@Aspect 标注说明Java类是切面配置的类 由@Pointcut和@Advice组成
@Pointcut 描述在哪些类的哪些方法植入代码
@Advice表达在Pointcut表达式的什么时间执行
4. pointcut中的通配符,运算符,指示器(通过什么方式匹配植入的方法)
通配符:* 匹配任意数量的字符 +匹配指定类及其子类 ..一般用于匹配任意数的子包或参数
运算符:&&与操作符 || 或操作符 !非操作符
指示器:
a. @within 匹配包/类型
@Pointcut("within(com.imooc.service.ProductService")) //匹配ProductService类里的所有方法
@Pointcut("within(com.imooc..*)") //匹配com.imooc包及子包下所有类的方法
b. execution 表达式:方法的修饰符 返回值 包名.类名.方法(参数)
@Pointcut("execution(public * com.imooc.service.*Service.*(..))")//表示com.imooc.service包下以Service字符结尾的类中任意参数的所有方法
5.Advice 注明要在哪个切点执行什么操作,有几种方式
@Before("") //意思是在切点执行前执行
@After("") //意思是在切点执行前执行
@Around("") //表明在切点方法的前后都要执行该处理器方法