aop 的几个问题


 

 

Wikipedia 里对 AOP 是这么介绍的:

An aspect can alter the behavior of the base code by applying advice (additional behavior) at various join points (points in a program) specified in a quantification or query called a pointcut (that detects whether a given join point matches).

 

AOP技术将软件系统划分成了核心关注点和横切关注点两部分,业务的核心功能则为核心关注点,与业务无关或者关系不大的则为横切关注点。

 

 横切关注点总是作用于核心关注点周围,且对应的业务含义类似,系统开发中常见的如:权限认证、事务管理、日志记录(如所有请求接口的入参都需要记录到日志中)等都属于横切关注点。

 

 AOP技术的出现,将系统的核心关注点和横切关注点分离,避免了非核心业务耦合在核心业务中,降低了模块间的耦合度,提高了系统的可读性、可操作性和可维护性。

 

 

面向切面编程(AOP)实现的效果就是在不修改源代码的情况下,给系统中的某些组件添加某些与核心业务无关的通用逻辑,

 

面向织入规则编程:


目标
关注点分离:实现什么横向功能

抽象与可变性

实现:
1、修改哪里(规则),
2、怎么(何时)修改:规则扫描与织入时机
3、修改成啥样


AOP 机制(引擎)定义了一套规则和框架,输入修改目标和规则,引擎自动完成目标代码修改。

posted @ 2022-05-29 23:46  zzfx  阅读(30)  评论(0编辑  收藏  举报