因为某些原因,触发了我要深入了解下AOP。
什么是AOP
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。扩展功能不修改源代码实现。
主要应用场景:日志记录,性能统计,安全控制,事务处理,异常处理等等。
核心概念
- JoinPoint:连接点。是程序执行中的一个精确执行点,例如类中的一个方法。
- PointCut:切入点。指定哪些组件的哪些方法使用切面组件。
- Advice:通知,用于指定具体作用的位置,是方法之前或之后等等,分为前置通知,后置通知,异常通知,返回通知,环绕通知。
- Aspect: 切面。封装通用业务逻辑的组件,即我们想要插入的代码内容。
其内在设计模式为代理模式。
Go实现AOP
1 | // User |
使用AOP模式进行解耦,分离主业务与副业务。其实也就那样。
- 本文作者: Hongker
- 本文链接: https://hongker.github.io/2020/04/12/golang-aop/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!