链接:MyBatis学习笔记——插件机制(AOP)
链接:通过aop拦截mybatis接口dao(拦截带有emoji表情)
-
关于AOP
1. 什么是 AOP?
Aspect Orentied Programming:面向切面编程
Object Orentied Programming:面向对象编程
AOP 编程是以 OOP 为基础,OOP 侧重点是对象抽象和封装,AOP 侧重点时共通处理部分的封装和使用,用于改善共通组件。是对 OOP 的补充和完善
2. AOP 的作用——其实就是一个 拦截器
功能
分离系统中的各种关注点,将核心关注点和横切关注点分离开来。举个例子:开发中为了调试,或在生产环境后为了对系统进行监控,需要为业务需求的实现对象添加日志记录功能,或者,业务方法的执行需要一定的权限限制。如果以面向对象的方式实现,就需要把系统中的每个业务对象都加入日志记录,加入相应的安全检查,那么,这些实现代码就会遍及所有的业务对象中。如果对这些代码进行模块化的组织,简化系统需求与实现之间的对比关系,通过某种方式在适当的时候调用这些代码,那么就不用每个业务方法里都写着相同的代码了
3. 什么时候用AOP
日志功能
安全检查
事务管理
缓存
二、AOP 相关概念
1.Joinpoint
Joinpoint 就是进行织入操作的系统执行点
2.Pointcut
是 Joinpoint的表述方式,指定了系统中符合条件的一组 Joinpoint
3.Advice
Advice 代表的是织入到 Joinpoint 的横切逻辑