`
samwalt
  • 浏览: 285503 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

小结下拦截器和动态代理

    博客分类:
  • java
 
阅读更多
理解这样几个角色:
1、目标类(被拦截器类拦截),目标类执行的是正常的功能
2、拦截器类(拦截目标类),在目标类的功能前面或者后面插入的功能
3、调用处理程序(实现了InvocationHandler接口,聚合了目标类和拦截器类的实例),该接口的invoke方法有Method类的参数,这个参数用来调用目标类的方法,拦截器类的实例用来在目标类的方法前后调用其它功能。
4、动态代理类(调用Proxy.newProxyInstance的静态方法,返回一个动态代理类的实例。动态代理类关联一个调用处理程序,调用处理程序显示InvocationHandler接口)

参考下两篇文章:
http://www.java3z.com/cwbwebhome/article/article8/81219.html

http://blog.csdn.net/gaowenming/archive/2010/01/14/5189803.aspx

http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/index.html
分享到:
评论

相关推荐

    拦截器和控制器的区别

    1、拦截器基于动态代理 , 过滤器基于函数回调 2、拦截器不依赖于servlet容器,通过动态代理实现,过滤器依赖于servlet容器 3、拦截器在方法前后,异常前后等调用,而过滤器只能在请求前和请求后各调一次。 4、拦截...

    Spring_AOP_学习小结 Spring_AOP_学习小结 Spring_AOP_学习小结

    5. IntroductionInterceptor(引入拦截器):用于向目标对象添加新的字段或方法。 五、Spring AOP切入点 1. Pointcut:定义了匹配特定Joinpoint的规则,包括ClassFilter和MethodMatcher。 2. ClassFilter:匹配类...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    1. **用户代理设置**:模拟浏览器请求时,设置正确的用户代理很重要,可以防止被一些网站的安全检查机制拦截。 2. **参数分析**:获取动态数据时,需要仔细分析请求参数,理解每个参数的作用,有时候不是所有参数...

    远程服务的安全拓展与优化

    #### 小结与展望 本项目通过采用动态代理技术和基于HTTP的认证机制,成功实现了远程服务配置的简化和安全性的提升。未来,将进一步完善权限控制机制,例如实现更加细粒度的权限管理,根据不同用户的角色和权限授予...

    J2EE应用开发详解

    124 8.5.2 拦截器的实现原理 124 8.5.3 Struts2的内置拦截器 124 8.5.4 拦截器的配置和使用 125 8.5.5 自定义拦截器 126 8.6 一个简单的Struts2应用 130 8.7 小结 140 第9章 JSF 141 9.1 JSF技术简介 141 9.1.1 JSF...

    Spring声明式事务和@Aspect的拦截顺序问题的解决

    小结 Spring 声明式事务和 @Aspect 的拦截顺序问题是 Spring 框架中常见的问题。了解 Spring 框架的自动代理机制和 AOP 机制,可以帮助我们更好地解决这个问题。通过选择合适的解决方案,可以确保我们的项目能够...

    Java Web程序设计教程

    6.1.2拦截器及拦截器栈的应用 111 6.1.3自定义拦截器 115 6.2类型转换器 117 6.2.1struts2内置类型转换器 117 6.2.2引用类型的转换方式 117 6.2.3特殊对象的类型转换 118 6.2.4类型转换的错误处理 121 6.3...

    Hibernate实战(第2版 中文高清版)

     1.5 小结   第2章 启动项目   2.1 启动Hibernate项目   2.1.1 选择开发过程   2.1.2 建立项目   2.1.3 Hibernate配置和启动   2.1.4 运行和测试应用程序   2.2 启动Java Persistence项目   2.2.1 ...

    Spring in Action(第2版)中文版

    11.3.4使用注释声明拦截器 11.4小结 第12章访问企业服务 12.1从jndi中获取对象 12.1.1使用传统的jndi 12.1.2注入jndi对象 12.1.3在spring2中注入jndi对象 12.2发送电子邮件 12.2.1配置邮件发送器 12.2.2...

    Spring in Action(第二版 中文高清版).part2

    11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI 12.1.2 注入JNDI对象 12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送...

    Spring in Action(第二版 中文高清版).part1

    11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI 12.1.2 注入JNDI对象 12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3 通过HQL来进行批量操作 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3 通过HQL来进行批量操作 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3 通过HQL来进行批量操作 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3 通过HQL来进行批量操作 ...

    ssm框架文档版总结

    - **动态代理**:MyBatis使用JDK动态代理技术创建`Mapper`接口的代理对象,代理对象会拦截接口中的方法调用。 - **SQL执行**:拦截的方法调用将被转为执行`mapperStatement`所代表的SQL语句。 - **结果封装**:执行...

    《MyEclipse 6 Java 开发中文教程》前10章

    10.3.3 装配拦截器和Bean 212 10.3.4 测试和运行 214 10.3.5 AOP简介和相关概念 214 10.3.6 关于java.lang.ClassCastException: $Proxy0错误的解决方法 216 10.4 开发 Spring 2.0 AOP 应用 219 10.4.1 使用aop 标签...

    SSM集成应用

    **12.5 SpringMVC小结** - **优势**:清晰的架构、易于理解和使用。 - **自由度和扩展性**:通过各种配置和自定义实现高度的灵活性。 #### 补充 **13.1 前台传method的方法名,后台通过反射调用方法** 通过动态...

    PHP访问数据库集群的方法小结

    在构建高可用性和可扩展性的Web应用时,数据库集群是一个重要的解决方案。PHP作为广泛应用的后端脚本语言,需要能够有效地访问这些集群以确保数据的可靠性和系统的性能。以下是三种常见的PHP访问数据库集群的技巧: ...

    Spring.3.x企业应用开发实战(完整版).part2

    15.7.2 装配拦截器 15.7.3 异常处理 15.8 小结 第5篇 测试及实战 第16章 实战型单元测试 16.1 单元测试概述 16.1.1 为什么需要单元测试 16.1.2 单元测试之误解 16.1.3 单元测试之困境 16.1.4 单元测试基本概念 16.2...

Global site tag (gtag.js) - Google Analytics