Java拦截器示例(实现InvocationHandler):
package com.dwen.test; public interface IBusiness { public void doSomething(); }
package com.dwen.test; public class BusinessImpl implements IBusiness { public void doSomething() { System.out.println("业务层调用doSomething()方法"); } }
package com.dwen.test; public class InterceptorClass { public void before(){ System.out.println("拦截器调用before()方法。"); } public void after(){ System.out.println("拦截器调用after()方法。"); } }
package com.dwen.test; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class DynamicProxyHandler implements InvocationHandler { private Object business; private InterceptorClass interceptor = new InterceptorClass(); public Object bind(Object business){ this.business = business; return Proxy.newProxyInstance(business.getClass().getClassLoader(), business.getClass().getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object resultObject = null; interceptor.before(); resultObject = method.invoke(business, args); interceptor.after(); return resultObject; } }
package com.dwen.test; public class Client { /** * 测试 * @param args */ public static void main(String[] args) { DynamicProxyHandler handler = new DynamicProxyHandler(); IBusiness business = new BusinessImpl(); IBusiness businesProxy = (IBusiness) handler.bind(business); businesProxy.doSomething(); } }
执行结果:
拦截器调用before()方法。
业务层调用doSomething()方法
拦截器调用after()方法。
相关推荐
基于ssm框架的java拦截器实现,对于新人的学习有较大帮助
java 动态代理实现的 拦截器 ,绝对可用
代理 拦截器 简单实验 java proxy 关于银行账户的操作
java 拦截器的例子,可以正常运行,不太了解的朋友可以下载看看。
java 拦截器_类型转换_国际化 原代码
很好很强大 Java拦截器
Java拦截器.pdf
该压缩包实现了利用过滤器或者拦截器对登录信息进行验证跳转登陆页的功能,利用的是SpringBoot和thymeleaf,使用前请先看使用说明
主要介绍了应用市场中Java拦截器和切面的使用实例详解,具有一定借鉴价值,需要的朋友可以参考下
拦截器 什么是拦截器? 15.1 拦截器概述 Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、...
利用拦截器解决中文乱码。配置Web文件,用到的文件都上传了
Java拦截器,可用于使用Prometheus监视Grpc服务。 特征 该库的功能包括两个监视grpc拦截器, MonitoringServerInterceptor和MonitoringClientInterceptor 。 这些拦截器可以分别附加到grpc服务器和客户端存根。 ...
SpringMvc 拦截器 原理清楚,代码简单,值得学习!
本文根据java代理实现CXF拦截器异常时只能进入fault拦截器而不能继续向下执行的问题。 利用java代理让RMI具有拦截器的功能。
struts 拦截器,扩展,以及java annotation 这个是我学习所用,放在此处,作为中转。
一个简单使用structs2拦截器实现使用自定义拦截器来完成用户权限的控制:当浏览者需要请求执行某个操作时,应用需要先检查浏览者是否登录,以及是否有足够的权限来执行该操作。 系统登陆之前点击查询自动跳入登陆...