Spring如何实现AOP环绕通知

 时间:2024-10-30 12:17:24

1、首先确保项目中有aop所需要的jar包,我这里截图不全,仅供参考。所需的依赖包基本如下:aopalliance-1.0.jaraspectjweaver-1.6.11.jarcommons-logging-1.1.1.jarspring-aop-3.0.5.RELEASE.jarspring-aspects-3.0.5.RELEASE.jarspring-beans-3.0.5.RELEASE.jarspring-context-3.0.5.RELEASE.jarspring-context-support-3.0.5.RELEASE.jarspring-core-3.0.5.RELEASE.jarspring-expression-3.0.5.RELEASE.jar

Spring如何实现AOP环绕通知

2、在你自己spring的核心配置文件中加入aop的命名空间 如下:

Spring如何实现AOP环绕通知

3、现在创建一个java类,把这个类声明为切面类,在头信息加入注解@Aspect。使用@Aspect 注解的类, Spring 将会把它当作一个特殊的Bean(一个切面,也就是不对这个类本身进行动态代理) 。

Spring如何实现AOP环绕通知

4、在头信息中加入注解@Component,将这个类放入容器中。@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)

Spring如何实现AOP环绕通知

5、基于切面中的方法,编写自己的业务逻辑代码,先定义切点"execution(* com.caissa.caissauic.dubbo.service.impl.*.*(..))",即哪些方法需要执行这些方法。如图所示:

Spring如何实现AOP环绕通知

6、编写切面的前置方法,执行目标方法前拦截到的方法,在目标方法之前的通知。该方法没有特殊注意的地方,只需要一个连接点:JoinPoint,即可获取拦截目标方法以及请求参数等。例如:

Spring如何实现AOP环绕通知

7、编写切换的后置方法,在目标方法执行之后的通知,不管是否抛异常,这个方法始终被执行。跟前置方法同样,只需要一个连接点JoinPoint,就可以获取当前结束的方法名称。

Spring如何实现AOP环绕通知

8、编写环绕通知方法,环绕通知需要携带ProceedingJoinPoint 这个类型的参数,ProceedingJoinPoint类型的参数可以决定是否执行目标函数,环绕通知必须有返回值。

Spring如何实现AOP环绕通知

9、最后别忘了在spring核心配置文件中声明aspect的代理对象,初始化spring容器的时候,spring自动对切点生成代理对象。如图所示:

Spring如何实现AOP环绕通知

10、保存代码,运行项目,调用监听的接口方法,下面是部分执行结果(可以根据自己的业务逻辑编写代码):

Spring如何实现AOP环绕通知
  • Ubuntu上Matlab的安装
  • Origin如何用色彩填充断层数据(Recession Bars)
  • win10自带linux系统的ubuntu自动安装gromacs
  • Mathematica和Maple在处理数论问题的效果对比
  • VASP入门到精通:[2]如何写POSCAR补充
  • 热门搜索
    合肥旅游地图 盘龙峡生态旅游区 苏州旅游团 途牛网旅游网 大青沟旅游攻略 鼓浪屿旅游攻略自由行 郭德纲 我要旅游 四川旅游信息网 苏州旅游网 旅游资源论文