SpringAOP 通知(adivce)- methodIntercepor
环绕通知(即methodIntercepor) 是SpringAOP 通知模块中的一种通知方式。可用在指定方法执行之前,执行之后。对于同时要实现两种通知的方法是一种便利。若使用BeforeAdivce和afterreturningadvice则显得太多与繁琐。
可通过实现MethodInterceptor接口来实现环绕通知。
1.MethodInterceptor接口源代码
public interface MethodInterceptor extends Interceptor {Object invoke(MethodInvocation var1) throws Throwable;
}
2.具体小案例实现环绕通知。
2.1 具体的业务类
/*** 目标业务类* Created by engle on 16-5-14.*/public class Target{public void log() {System.out.println("日志信息");}}
2.2 环绕通知实现类
/*** Created by engle on 16-5-14.*/
public class InterceptorMessage implements MethodInterceptor {/**** @param methodInvocation 调用方法对象* @return 放回的对象* @throws Throwable 抛出的异常*/@Overridepublic Object invoke(MethodInvocation methodInvocation) throws Throwable {System.out.println("在目标方法执行的之前的环绕通知");Object proceed = methodInvocation.proceed(); //通过反射机制获取代理对象执行的方法System.out.println("在目标方法执行之后的环绕通知");return proceed;}
}
2.3测试类
/*** 测试类* Created by engle on 16-5-14.*/
public class Test {public static void main(String[] args) {Target target = new Target();BeforeAdvice before = new BeforeMessage();AfterMessage after = new AfterMessage();MethodInterceptor interceptor = new InterceptorMessage();ProxyFactory factory = new ProxyFactory(); //设置代理工厂factory.addAdvice(interceptor);factory.setTarget(log); //添加执行目标信息Target proxy = (Target) factory.getProxy(); //获取代理对象proxy.log();}
}
2.4测试结果
在目标方法执行的之前的环绕通知
日志信息
在目标方法执行之后的环绕通知
SpringAOP 通知(adivce)- methodIntercepor相关推荐
- SpringAop通知
2019独角兽企业重金招聘Python工程师标准>>> 基于注解的方式实现通知 1.需要的jar包: com.springsource.net.sf.cglib-2.2.0.jar ...
- SpringAOP技术【松思园】
一.SpringAOP理解 SpringAOP称之为"面向切面编程",这和我们之前编程思想"面向对象编程"是不一样的,当然我们还听过"面向过程的编程& ...
- Spring思维导图,让Spring不再难懂(aop篇)
2019独角兽企业重金招聘Python工程师标准>>> 什么是aop AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Or ...
- 自定义注解-aop实现日志记录
关于注解,平时接触的可不少,像是 @Controller.@Service.@Autowried 等等,不知道你是否有过这种疑惑,使用 @Service 注解的类成为我们的业务类,使用 @Contro ...
- 记录请求的耗时(拦截器、过滤器、aspect)
记录请求的耗时(拦截器.过滤器.aspect) 文章前言 记录控制器请求的耗时处理通常有三种实现方式,分别是:过滤器.拦截器.aspect:下文将逐一实现. 1.Filter 过滤器 1.1.方法说明 ...
- 小汤学编程之JavaEE学习day10——Spring
一.Spring简介 1.特点 2.核心特性 3.两大核心 二.Spring环境搭建 1.导包 2.准备数据库和表.实体类 3.定义dao层接口和接口映射文件 ...
- SpringBoot整合AOP + 自定义注解实现简单的权限验证
1.简介 主要通过自定义注解,使用SpringAOP的环绕通知拦截请求,判断该方法是否有自定义注解,然后判断该用户是否有该权限,这里做的比较简单. 2.项目搭建 这里是基于SpringBoot的,对于 ...
- Spring-AOP的五种通知和切面的优先级、通知变量声明
SpringAOP的通知分为以下五种: 1前置通知(@before) 在连接点执行之前执行的代码 2后置通知(@after) 在连接点执行之后执行的代码,不管连接点执行后是否出现异常,后置通知都会执行 ...
- SpringAOP的几大通知
首先配置application.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xml ...
最新文章
- mysql 索引合并
- 【云周刊】第208期:阿里云MWC 2019发布7款重磅产品,助力全球企业迈向智能化...
- html css双色径向渐变,CSS 径向渐变
- Qt 实现钢笔画线效果详细原理
- python同时输出多个值_python如何实现输出多个值?
- Socket编程实践(12) --UDP编程基础
- Flutter OpenContainer 容器转换过渡 Material Design 设计风格的实践
- python函数参数的部分求值方法
- MAC下安装NDKR10e
- python join_python中join()方法介绍
- 统计学和计算机类对比,统计学与计算机的关系
- memcached源码分析-----item锁级别与item引用计数
- 蘑菇街商家登录php源码,蘑菇街
- html图片如何和输入框并排,闪亮的4个小文本输入框并排
- 二阶求导 算法 实现 寻峰问题(转)
- 卸载软件失败:“1628:完成基于脚本的安装失败”【已解决】
- 【2021年蓝桥杯Java-B组国赛题解】
- AI 计算能力TOPS
- 如何搭建一个个人博客,这么写纯粹是为了通过shen he
- 欧拉角表示旋转会出现的问题——万向锁(Gimbal Lock)
热门文章
- [Contest20180418]物理竞赛
- 用PHP实现浏览器点击下载各种格式文档的方法详解【txt apk等等】
- testng入门教程10 TestNG参数化测试
- Bazel C++ 基础[翻译]
- 移动开发之设计稿转换页面单位尺寸
- Eclipse javax.servlet.jsp.PageContext cannot be resolved to a type 错误解决办法
- 2010年一月份兑换公告
- 领域驱动设计DDD之读书笔记
- Java线程池(ThreadPool)详解
- vice versa VS the other way around