Spring中AOP的相关概念

Spring中AOP的相关概念

摘要

通过一些spring的小demo来解释, 切面 ,连接点, 切入点, 通知, 目标对象, 代理, 织入

中文翻译比较多, 英文如下: Aspect, Joinpoint , Pointcut, Advice, Target ,Object ,Proxy Weaving

这一组重要的概念.

案例

public class ProductService {
    public void doSomeService(){
        System.out.println("doSomeService");
    }
}

比如如上一个功能, 我们想在它的前后加一点操作, 如Spring AOP一文中提到, 可以使用代理.

public class Proxy {
    private ProductService s;
    public Proxy(ProductService s) { this.s = s; }
    public void login() {
        beforeService();
        s.doSomeService();
        afterService();
    }
    private void beforeService(){}
    private void afterService(){}
}

以上很简单, 就是在productService上套一层. 然后在s.doSomeService()之前后, 执行一些自定义操作.

对于这个案例而言, 可以很好的理解 Aspect, Joinpoint , Pointcut, Advice, Target ,Object ,Proxy Weaving这组概念.

概念对应

辅助理解

在这里插入图片描述

简单部分

  1. 切面, Aspect:

    切面其实就是以上代理中的全部逻辑, 核心业务之前, 之后, 执行中, 这期间我们需要的所有操作, 就是我们要编写的切面

  2. 目标, target 及代理, proxy:

    目标就是ProductService, 即被代理对象, 代理就是代理对象.

重点关键部分

  1. 连接点及切入点, Joinpoint 及Pointcut,

    代码中所有方法的调用时刻都是一个可能的连接点, 而我们选中编写前后操作的方法调用的时刻则是切入点, 如以上, doSomeService就是一个连接点, 也是被我们选中的切入点

  2. 通知, Advice

    通知, 也翻译为通知增强, 其实就是指切面的具体实现, 可以理解为在方法的前后加一些通知, 增强功能.

  3. 编织, Weaving

    理解编织, 首先得理解一些核心业务和辅助业务, 不懂可以看看Spring AOP一文中的相关解释, 简单来说辅助业务就是一些通用的检查权限, 记录日志等等功能.

    编织其实就是指, 我们指明那些核心业务前后或执行中需要和执行哪些辅助业务, 将两者联系在一起, 这就是编织了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值