文档章节

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

岸芷汀兰
 岸芷汀兰
发布于 2015/08/25 14:44
字数 253
阅读 300
收藏 3

环绕通知用 @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中 也要完全对应,否则 通知失效

© 著作权归作者所有

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

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

哲别0
05/18
0
0
在Spring-Boot中实现通用Auth认证的几种方式

前言 最近一直被无尽的业务需求淹没,没时间喘息,终于接到一个能让我突破代码舒适区的活儿,解决它的过程非常曲折,一度让我怀疑人生,不过收获也很大,代码方面不明显,但感觉自己抹掉了 ...

枕边书
07/17
0
0
3.5 ProxyFactoryBean实现AOP的过程总结

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

edwardGe
06/04
0
0
Spring3.2 AOP 分析

Spring3.2 AOP个人分析: AOP, 即Aspect-Oriented-Programming, 面向切面编程, 又一Spring的核心,被广泛应用,如在Spring-tx中都有用到,其好处是实现松耦合的外围处理程序,先说些理论吧。...

ihaolin
2014/01/17
0
0
Spring AOP就是这么简单啦

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

Java3y
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

002,zabbix-agent的安装 监控Linux主机

2.1.安装zabbix-agent $ rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm$ yum install -y zabbix-agent zabbix-get 2.2.配置zabbix-agent ......

happyeveryday32
36分钟前
2
0
docker learn :swarm

swarm是什么 swarm是一组运行docker服务的集群,之后,还是使用那些命令去操作docker,但是是通过swarm manager来执行的。 swarm中的机器可以是实体的也可以是虚拟的,加入swarm后,他们被当作...

writeademo
36分钟前
1
0
Golang + vscode 开发环境配置

GOPATH 环境变量的配置 https://my.oschina.net/xinxingegeya/blog/718305 安装vscode go 扩展 下载vscode ,安装go的扩展https://github.com/Microsoft/vscode-go 该扩展对 Golang 支持非常......

秋风醉了
38分钟前
0
0
idea jar包

我自己用idea新建一个springboot项目,打包一直有问题,百度了下,又总结了下。 方式一: 找到Project Structure菜单,然后点开,照下图点击 然后出现下图所示 红框1:为你项目的main函数所在...

朝如青丝暮成雪
40分钟前
0
0
Vue scoped CSS 与深度作用选择器 /deep/

使用 scoped 后,父组件的样式将不会渗透到子组件中。 例如(无效): <template> <div id="app"> <el-input class="text-box" v-model="text"></el-input> </div></template><......

不负好时光
40分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部