-
匹配包/类型
查看全部 -
切面注解1
查看全部 -
定义切面拦截器
查看全部 -
AOP场景
查看全部 -
工程中使用AOP,需要再pom.xml中引入依赖包
查看全部 -
AOP的使用场景
查看全部 -
AOP的概念
查看全部 -
Spring AOP
编程范式种类概览
1、面向过程编程
2、面向对象编程
3、函数式编程
4、事件驱动编程
5、面向切面编程
AOP
是一种对 面向对象编程 的补充,用来解决特定问题的编程范式,并不是适合所有场景。
初衷:
do not repeat yourself,减少重复代码
separate of concern,关注分离
水平分离,展示层->服务层->持久层
垂直分离,模块划分(订单,库存)
切面分离,把 功能性需求 与 非功能性需求 分开
好处:
集中处理某一关注点/横切逻辑
很方便地添加/删除关注点
侵入性少,增强代码可读性和可维护性
(我们把一些功能的共同性抽取出来,通过一个AOP拦截注入,需要的地方加一个注解即可,不需要之后把注解去掉即可,这些共同功能只需要在一个拦截器维护即可,减少代码,侵入性低,维护很方便,比如存在有一些job调度任务只能单点允许,但是服务是多台部署,就需要解决锁竞争,获取锁的单点即可执行调度,就可以把锁竞争分离出来,放入拦截器中,需要调度的地方加入注解即可)
适用场景:
权限控制 如shiro就是方便通个注解注入,然后拦截
缓存控制
审计日志 如统一打接口参数日志,不用在每个接口处记录
事物控制 spring的@Transaction
性能监控
异常处理 接口统一异常拦截返回
分布式追踪
查看全部 -
应用场景记录
查看全部 -
aop代理
查看全部 -
springAOP如何选择动态代理模式
查看全部 -
JDK与CGlib代理对比
查看全部 -
JDK动态代理:基于接口代理
查看全部 -
指示器分类
查看全部 -
AOP 应用场景
查看全部
举报