为了更好地了解AOP,您需要了解AOP的相关术语。
JOINPOINT是指在弹簧中可以动态拦截目标类的那些截距点。输入点。方法是指代理的目标对象。编织是指将增强代码应用于目标并生成代理对象的过程。proxy(proxy)。点和通知绑定。
Spring aop提供org.aopalliance.aop.Apt。
如下表所示,根据目标方法的连接点位置,可以将弹簧通知分为以下五种类型。
org.springframework.aop.methodbeforeadvice(预制通知)该通知在该方法称为第一个通知之前自动执行的通知,可以将其应用于权限管理和其他函数。该方法称为后方通知后的执行,可以将其应用于诸如关闭流,上传文件和删除临时文件等函数通知,可以应用于日志和事务管理函数.org.springframework.aop.throwsadvice(异常通知),当该方法被抛出该方法时,自动执行通知称为异常通知,可以将其应用于处理异常记录日志和其他functions.org.springframework.ap.IntroductionInterceptor添加SO我的新方法和属性是目标类,可以应用于修改旧版本程序(增强类)。首先,我们通过Maven介绍春季的支持:
上面提到的依赖关系将自动引入extackj,并且使用apkectj实现AOP更为方便,因为其定义相对简单。
界面
真实角色
日志的实现类应执行本机界面,而不会影响原始业务代码
ApplicationContext.xml(等效于代理角色)
测试
自定义徽标类
ApplicationContext.xml
测试代码不变
在春季,尽管XML配置文件可用于实现AOP开发,但如果所有相关配置都集中在配置文件中,则不可避免地会导致XML配置文件过于肿,从而带来一些困难来维护和升级。
为此,fackj框架为AOP开发-A基于Annotion的eppection提供了另一种开发方法。ASPECTJ允许使用注释来定义切割平面,入口点和增强的处理,而弹簧框架可以识别并生成基于AOP代理关于这些注释。
@Aspect用于定义切割表面。,这相当于MethodInterceptor。@afaceerthring用于定义投掷通知,这相当于投掷。用于定义引言通知,该通知等效于IntroidInterceptor.define a cut -off类带注释
ApplicationContext.xml
测试代码不变