Spring Aop揭秘(一)

Spring Aop揭秘(一)

前言:在日常开发中,spring aop用得很多,可以用作日志,权限,事物的横切;在此小弟的一番理解,如果有不对的地方,还  
望各路大神多指教

1.spring aop 术语

 连接点(Joinpoint):执行的特定的位置(可理解为方法执行)
 切入点(Pointcut) : 连接点的一个集合(一般用expression表示)
 通知(Advice)     : 需要增强的功能(例如日志管理,事物管理)
 切面(Aspect)     :切入点和通知的组合

2.spring aop 实现依赖

我们都知道在spring的配置文件中配置aop代码,代码如下

    <bean id="XXXXSupport" class="com.********.XXXXSupport"/>

    <aop:config>
        <aop:aspect ref="XXXXSupport">
            <aop:pointcut id="aggSupportMethod"
                          expression="@annotation(com.********.AggCache)"/>
            <aop:around pointcut-ref="XXXXSupport" method="doSupport"/>
        </aop:aspect>
   </aop:config> 

但是spring不是管理bean的吗,spring又是如何解析这些配置呢?这就用到spring自定标签的作用,且慢慢道来!

spring 自定义标签使用流程

1.下载spring源码后,全局搜索spring-aop-version.xsd文件(versiond 代表spring版本号),部分代码如下
这里写图片描述

2.spring aop自定义标签的入口是AopNamespaceHandler类,继承NamespaceHandlerSupport类,顶层基类是NamespaceHandler,如果大家对spring自定义标签不了解,可以去百度了解这方面的知识;spring已经默认已经实现了这些代码
这里写图片描述
3.接下里我们需要将AopNamespaceHandler配置在spring.handlers里面,spring已经帮我做了
这里写图片描述
4.还需要把spring-aop-version.xsd文件添加到spring.schemas中,在spring解析xml的时候,会解析这个文件;还需要在spring的配置文件中需要引入schema
这里写图片描述
5.但是定义了这些 spring是怎么找到AopNamespaceHandler呢? spring容器启动时,会解析配置文件,会解析自定义的元素
这里写图片描述
然后开始调用init方法进行初始化,
这里写图片描述
6.接着调用NamespaceHandler的prase方法进行标签解析
这里写图片描述
7.最后解析完标签内容组装成BeanDefinition,注入spring容器中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值