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切面。

  • 相关阅读:
    GitLab 介绍
    git 标签
    git 分支
    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog
    git 仓库 回退功能 git checkout
    python 并发编程 多进程 练习题
    git 命令 查看历史提交 git log
    git 命令 git diff 查看 Git 区域文件的具体改动
    POJ 2608
    POJ 2610
  • 原文地址:https://www.cnblogs.com/hewenwu/p/3823830.html
Copyright © 2011-2022 走看看