-
环 绕通知
查看全部 -
@pointcut("execution(“私有性”,“返回值类型”,“路径值”,“异常值”))")
查看全部 -
Advice注解
查看全部 -
execution()
修饰符,返回值,描述包名,描述方法名(描述方法参数),匹配方法抛出的异常
?表示是可以省略的
查看全部 -
匹 配 注 解
查看全部 -
Pointcut匹配对象
@Pointcut("this()"),实现类,代理对象;
@Pointcut("target()"),所有实现他的类
@Pointcut("bean()") 过滤spring托管的bean的实例,通过bean的名称进行过滤
查看全部 -
within表达式用法:匹配包/类型
查看全部 -
designators指示器
查看全部 -
切面表达式主要由三个部分组成
designators指示器,描述通过什么方式去匹配类的哪些方法
Wildcards通配符,使用通配符来描述一些方法
operators运算符
Wildcards说明
*匹配任意数量的字符
+匹配指定类及其子类
..一般用于匹配任意数的子包或参数
运算符
&&与操作符
||或操作符
!非操作符
查看全部 -
主要几个注解
@Aspect说明这个类是切面配置的类(这个类由@Pointcut切面表达式和Advice两部分组成)
@Pointcut表示在哪些类中哪些方法植入代码
Advice(5种)表示植入时机
查看全部 -
AOP的使用方式
查看全部 -
AOP注解注解实现:
@Aspect:切面 = 切点+通知(手动添加的代码,一般是方法); @Point:切点,横切关注点;
@Before(前置通知):添加的内容在切点之前执行;
@After(后置通知): 添加的内容在切点之后执行
还有环绕通知,异常通知,返回通知
------------------------------------
@Autowired:自动装配,与Spring注入相关,可按类型、名装配; Spring注解@Component、@Controller、@Service、@Repository;
传统方式的缺点:这种方式属于硬编码,对引入者代码是有侵入的。如果对删除或增加产品还有其它关联操作,添加代码时会增加代码复杂度。而AOP会将校验分离出来变成无侵入
查看全部 -
AOP的初衷:
解决代码重复性问题
实现关注点分离
水平分离:展示层->服务层->持久层
垂直分离:模块划分(订单、库存等)
切面分离:分离功能性需求与非功能性需求
使用AOP的好处
集中处理某一关注点/横切逻辑
可以很方便地添加/删除关注点
侵入性少,增强代码可读性以及可维护性
AOP的应用场景:
权限控制,缓存控制,事务控制,审计日志,性能监控,分布式追踪,异常处理
查看全部 -
AOP定义
查看全部 -
编程范式概览
查看全部
举报