zoukankan      html  css  js  c++  java
  • Spring中利用java注解声明切面

    Spring中利用java注解声明切面

    第一步:确定在Spring的XML文件中包含AOP的命名空间:

            47

    第二步:在Spring的XML文件中输入<aop:aspectj-autoproxy/>,将Spring中自带的“自动代理创建类”声明为一个bean,以便Spring能够根据java的注解来自动定义切面

    第三步:定义切面类,并且给其class和method添加注解:

              jsy1

              在这里@aspect声明切面,@pointcut声明切点,@before、@afterReturning这些声明的就是通知。

    第四步:将切面类声明为bean,两种方法:<bean>标签或者@component标注

    第五步:如果要注解环绕通知,方法类似,用到的是@around标注:

              jsy2

    第六步:如果要传入参数,也很简单:

              jsy3

    第七步:标注引入(即给一个bean添加新的接口):

              jsy4

    上面几个参数的含义是:

              jsy5

    注意,ContestantInstructor类是一个切面,而且我们也必须把它声明成bean才能使用。@DeclareParents不能引入一个已经被声明为bean的接口,这是注解的缺陷所在,因为AspectJ并不是Spring的一个项目,所以它的注解并不了解Spring bean。

    小结:Spring的bean是基于代理的,仅限于通知方法的调用,要使用更强的功能,需要使用传统的AspectJ切面。

  • 相关阅读:
    6410实现网卡(DM9000A)收发功能及ARP协议实现
    Shuffling Machine和双向链表
    Have Fun with Numbers及循环链表(约瑟夫问题)
    Tiny6410 LCD设置
    RAM与内存
    inet_addr解析
    map容器find用法
    WinSock编程(TCP)
    Python 时间序列作图及注释
    无法打开之前cuda的vs项目,打开之后变灰色
  • 原文地址:https://www.cnblogs.com/hewenwu/p/3823830.html
Copyright © 2011-2022 走看看