知识大全 Java实现的拦截器

Posted

篇首语:听闻少年二字,当与平庸相斥。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java实现的拦截器相关的知识,希望对你有一定的参考价值。

Java实现的拦截器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  拦截器在在流行的开源框架中很常见 依赖的技术就是Java的动态代理

  理解拦截器的核心原理对理解这些开源框架的体系结构至关重要

  下面以一个简单的模型的来说明拦截器的实现的一般方法

  模型分为以下模块

  业务组件 是被代理和被拦截的对象

  代理处理器 实现了InvocationHandler接口的一个对象

  代理对象 Proxy对象

  拦截器 普通的JavaBean 在调用业务方法的之前或者之后会自动拦截并执行自己的一些方法

  客户端 执行业务处理的入口

  以下是模型的实现

  一 业务组件 分为业务接口和业务类

  /**

  * 业务组件接口

  */

  public interface BusinessInterface

  public void doSomething();

  

  /**

  * 业务组件

  */

  public class BusinessClass implements BusinessInterface

  public void doSomething()

  System out println( 业务组件BusinessClass方法调用:doSomething() );

  

  

  二 代理处理器 包含了业务对象绑定动态代理类的处理 并实现了 InvocationHandler接口的invoke方法

  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();    //拦截器

  /**

  * 动态生成一个代理类对象 并绑定被代理类和代理处理器

  *

  * @param business

  * @return 代理类对象

  */

  public Object bind(Object business)

  this business = business;

  return Proxy newProxyInstance(

  //被代理类 的ClassLoader

  business getClass() getClassLoader()

  //要被代理 的接口 本方法返回对象会自动声称实现了这些接口

  business getClass() getInterfaces()

  //代理处理 器对象

  this);

  

  /**

  * 代理要调用的方法 并在方法调用前后调用连接器的方法

  *

  * @param proxy  代理类对象

  * @param method 被代理的接口方法

  * @param args   被代理接口方法的参数

  * @return 方法调用返回的结果

  * @throws Throwable

  */

  public Object invoke(Object proxy Method method Object[] args) throws Throwable

  Object result = null;

  interceptor before();

  result=method invoke(business args);

  interceptor after();

  return null;  //To change body of implemented methods use File | Settings | File Templates

  

  

  三 拦截器 普通的JavaBean 在调用业务方法的之前或者之后会自动拦截并执行自己的 一些方法

  /**

  * 拦截器

  */

  public class InterceptorClass

  public void before()

  System out println( 拦截器InterceptorClass方法调用:before()! );

  

  public void after()

  System out println( 拦截器InterceptorClass方法调用:after()! );

  

  

  四 模拟客户端 执行业务处理的入口

  /**

  * 客户端

  */

  public class Client

  public static void main(String args[])

  DynamicProxyHandler handler = new DynamicProxyHandler();

  BusinessInterface business = new BusinessClass();

  BusinessInterface businessProxy = (BusinessInterface) handler bind(business);

  businessProxy doSomething();

  

cha138/Article/program/Java/hx/201311/27143

相关参考

知识大全 struts拦截器使用

  struts拦截器使用  一方法调用之后使用的拦截器实现interceptor接口  拦截器一定是线程安全的就是要同步  publicinterfaceInterceptorextendsSeri

知识大全 实现自已的拦截器

Struts2教程9:实现自已的拦截器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在上一篇中

知识大全 Hibernate拦截器简单描述

Hibernate拦截器简单描述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hibernat

知识大全 Structs2.0 拦截器

Structs2.0拦截器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <sproper

知识大全 Spring mvc Session拦截器

SpringmvcSession拦截器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  未登录不允

知识大全 10分钟学懂Struts 2.0 拦截器

10分钟学懂Struts2.0拦截器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  简介  在S

知识大全 拦截器与过滤器的区别以及他们的执行顺序

过滤器是在javaweb中你传入的requestresponse提前过滤掉一些信息或者提前设置一些参数然后再传入servlet或者struts的action进行业务逻辑比如过滤掉非法url(不是log

知识大全 iphone5 6.1越狱版 手机卫士黑名单只能拦截电话,不能拦截短信~~~请问怎么解决啊

iphone56.1越狱版手机卫士黑名单只能拦截电话,不能拦截短信~~~请问怎么解决啊?谢谢!在360手机卫士里面==》骚扰拦截==》点右上角的设置==》在来电拦截设置里面的拦截模式里自己设置最下面也

知识大全 百度手机卫士呗被拦截的短信在什么地方查看

百度手机卫士呗被拦截的短信在什么地方查看您好,您可在骚扰拦截——短信拦截中找到被拦截的短信。感谢您的支持!怎么查看金山手机卫士中被拦截的短信到通讯管理--拦截记录中查看即可百度手机卫士怎么防骚扰百度手

未来科学技术 拦截卫星

   由于航天技术的发展,未来战争的领域将伸展到太空。随着太空武器的不断出现,各种反太空武器也应运而生,拦截卫星就是其中的一种。   拦截卫