文档章节

Spring Aop 实现拦截器功能之基础 - 001

岸芷汀兰
 岸芷汀兰
发布于 2015/08/25 14:44
字数 253
阅读 298
收藏 3
点赞 0
评论 0

环绕通知用 @Around  注解来声明

 可以决定这个方法在什么时候执行,如何执行,甚至是否执行


通知的第一个参数必须是 ProceedingJoinPoint 类型


如下

@Pointcut("execution(* com.sxb.web.v2.wh.unittest2.aop.PersonServiceBean.save(..)) || execution(* com.sxb.web.v2.wh.unittest2.aop.PersonServiceBean.update(..))")  

    private void anyMethod(){}//定义一个切入点  


@Around("anyMethod() && args(name)")  

    public Object doAccessCheck(ProceedingJoinPoint pjp,String name) throws Throwable{  

   

   

        System.out.println("name2:"+name);

        System.out.println("环绕通知");

        

        //原实体类名(包括包名)  

        String className=pjp.getTarget().getClass().getName();  

        //原方法名  

        String methodName=pjp.getSignature().getName();  

        //原方法实参列表  

        Object[] arguments=pjp.getArgs();  

          

         

        return  null;//pjp.proceed();  

    }  


如上,当,返回值不为pjp.proceed()的时候,切入点的主体方法 将不会再执行;

            此时,当前通知返回的值将作为最后结果返回;


注意,对于 @Around中 定义的获取切入点方法的参数表达式 args(name),必须要和切入点的方法对应,在当前方法doAccessCheck中 也要完全对应,否则 通知失效

© 著作权归作者所有

共有 人打赏支持
岸芷汀兰
粉丝 27
博文 123
码字总数 90761
作品 0
南岸
高级程序员
Spring AOP 日志拦截器的事务管理

如果要在方法执行前或后或抛出异常后加上一个自己的拦截器,或者一个环绕拦截器,在拦截器中执行一些操作,比如执行一些数据库操作,记录一些信 息,这些操作通过调用一个服务类的方法来执行...

哲别0 ⋅ 05/18 ⋅ 0

3.5 ProxyFactoryBean实现AOP的过程总结

回顾下通过ProxyFactoryBean实现AOP的整个过程: 首先需要对目标对象以及拦截器进行正确配置,以便AopProxy代理对象顺利产生;这些配置可以通过配置ProxyFactoryBean的属性来完成,或者通过编...

edwardGe ⋅ 06/04 ⋅ 0

Spring AOP就是这么简单啦

前言 只有光头才能变强 上一篇已经讲解了Spring IOC知识点一网打尽!,这篇主要是讲解Spring的AOP模块~ 之前我已经写过一篇关于AOP的文章了,那篇把比较重要的知识点都讲解过了一篇啦:Sprin...

Java3y ⋅ 05/24 ⋅ 0

Spring AOP与拦截器的区别

作用层面 拦截器只对action负责,作用层面一般位于Controller层 Spring AOP主要是拦截对Spring管理的Bean的访问,一般作用与Service层 2、联系与区别 联系: Spring AOP和拦截器一样,都是A...

niithub ⋅ 05/06 ⋅ 0

3.4 Spring AOP拦截器调用的实现

3.4.1 设计原理 在Spring AOP通过JDK的Proxy方式或者CGLIB方式生成代理对象的时候,相关的拦截器已经配置到代理对象中去了,拦截器在代理对象中起作用是通过对这些方法的回调来完成的。 如果...

edwardGe ⋅ 06/04 ⋅ 0

spring mvc 注解详解

1. 声明Bean的注解: 1.1 @Component : 组件,没有明确的角色 1.2 @Service : 在业务逻辑层(service层)使用 1.3 @Repository : 在数据访问层(dao层)使用 1.4 @Controller : 在展现层(MVC--Spr...

坚持30天 ⋅ 2017/10/19 ⋅ 0

SpringBoot中的拦截机制

SpringBoot的拦截机制实现不是其特有的,它和Spring中一致,都可以使用下面三种技术来实现拦截机制 过滤器(Filter) 拦截器(Interceptor) 切片(Aspect) 过滤器拦截 过滤器是servlet中的...

Coding小聪 ⋅ 04/06 ⋅ 0

Spring AOP 源码分析系列文章导读

简介 前一段时间,我学习了 Spring IOC 容器方面的源码,并写了数篇文章对此进行讲解。在写完 Spring IOC 容器源码分析系列文章中的最后一篇后,没敢懈怠,趁热打铁,花了3天时间阅读了 AOP ...

java高级架构牛人 ⋅ 06/21 ⋅ 0

SpringMVC开发 知识点速查

SpringMVC入门 什么是SpringMVC 实现MVC设计模式的框架 SpringMVC核心组件 DispatcherServlet 前置控制器,调度 Handler 处理器,完成具体业务逻辑 HandlerMapping 将请求映射到Handler,映射...

linxinzhe ⋅ 05/19 ⋅ 0

SpringMVC中拦截器的使用

SpringMVC中的拦截器(Interceptor)主要是拦截用户的请求并进行相应的处理。今天主要梳理的是权限的验证,判断用户的登陆状态,是否需要认证。 ♦两张小心翼翼的图 1、Interceptor的实现方法...

binggetong ⋅ 2017/12/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 13分钟前 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 19分钟前 ⋅ 0

Python 优化 回溯下降算法

使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴力搜索,找到最小值约为2.5左右 然后选定初始点,开始进行回溯搜索,下降方向为负梯度方向 下降的误差与步数大致呈现下面的状...

阿豪boy ⋅ 24分钟前 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 25分钟前 ⋅ 0

用接口模拟可伸缩枚举(34)

1、枚举的可伸缩性最后证明都不是什么好点子 扩展类型的元素是基本类型实例,基本类型的实例却不是扩展类型的元素,很混乱 目前还没有很好的方法来枚举基本类型的所有元素,及其扩展 可伸缩性...

职业搬砖20年 ⋅ 29分钟前 ⋅ 0

Ubuntu18.04 IDEA快捷键无法使用

IDEA默认的回退到上一视图的快捷键是Ctrl + Alt + Left,在ubuntu中这个快捷键被占用了,在16.04中可以在界面中取消这个快捷键,但是18.04就看不到了,可以使用以下命令解决 gsettings set ...

Iceberg_XTY ⋅ 33分钟前 ⋅ 0

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 45分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 今天 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 今天 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部