aop基本概念

spring-aop功能 涉及到的东西很多 比如 切面 CGLIB 责任链等 这些东西会讲到 但不会详细讲解 一来是因为篇幅限制 另外博客的目的还是授人以鱼不如授人以渔

为了让大家能阅读下面几篇关于aop的文章更顺利些 这里先给读者讲一下 spring实现aop大概的流程以及涉及到的一些名词 因为注解形式的友好性 大家用的比较多 所以我们只谈这种形式的实现

aop

面向切面编程(AOP) :面向对象编程(OOP)的一种扩展 可以这样理解 我们之前所做的所有功能大体来说都是线性的(好比在流淌在水管里的水 一直是往前流动的 很难纵向扩展) 如果我们想加一些公共的服务 比如说日志 登录检查等 OOP将会有大量的重复代码

pointcut

连接点 就是这些额外的动作的发生点 (在什么地方)

advice

切面 就是我们上面说的那些公共服务 比如说日志 登录检查等 (做什么)

advisor

我们这里说的advisor 是实现代码里面的advisor 是一个封装类 包括了pointcut(验证是否跟指定方法匹配的功能) 与 advice

流程:
我们暂时把spring加载bean的过程笼统的分为两个阶段

  • spring加载配置文件并根据配置文件或者注解生成BeanDefinition的过程。 BeanDefinition看这个词的意思就略知一二 如果你看过tomcat的源码的话 应该会让你想起servletconfig 主要是用来保存bean的配置信息
  • spring提前加载非懒惰bean

很显然 aop的实现就是在第二个阶段 bean有几个比较特殊的阶段 比如实例化(instantiate) 初始化(initiate) 那么就可以在这几个特殊阶段的前后加一些方法 实现扩展 这些扩展点也就是我们属性的BPP的由来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值