- 浏览: 7189115 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (397)
- 架构研究 (44)
- 网络协议-TCP/HTTP (20)
- SPRING (23)
- HIBERNATE 3 (30)
- STRUTS 2 (20)
- Java/J2se (25)
- Servlet/Jsp (9)
- 开发工具IDE (10)
- WEB服务器 (17)
- 前端--Java Script (33)
- 前端--CSS (7)
- OS--Linux (31)
- OS--MAC OS (19)
- MySQL数据库 (19)
- Oracle数据库 (11)
- 项目管理工具 (12)
- 数据报表技术 (4)
- 图像处理技术 (10)
- 其它综合技术 (13)
- 权限管理 (1)
- MyBatis (1)
- 网络安全 (6)
- IO (21)
- PostgreSQL (2)
- Eclipse RCP (1)
- GWT (1)
- 算法 (3)
- Storm (2)
- zookeeper (3)
- 消息 (1)
最新评论
-
bukebuhao:
已解决,打开文件太多。ulimit -n 上次临时生效后再次s ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
bukebuhao:
ds重启后启动不了。报错信息如下,请大神帮助[2018-08- ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
墨上清:
感谢,看完有了一个完整的知识网络。
Spring MVC 教程,快速入门,深入分析 -
云卷云舒灬:
谢谢,学到很多
Spring MVC 教程,快速入门,深入分析 -
luozhy:
非常感谢非常感谢
Project Web Access ActiveX控件 安装
结构如下 :
package com.client; import com.intercept.Interceptor; import com.intercept.MyProxy; import com.target.Target; import com.target.TargetInterface; /** * 程序入口, 有main方法 * */ public class Client { public static void main(final String[] args) { //目标对象,将被代理 final TargetInterface target = new Target(); //设置插入的对象,对象的"三个方法"将被插入到"目标对象"的方法前面,后面,异常时 final Interceptor in = new Interceptor(); //代理 final MyProxy myProxy = new MyProxy(); //目标类实现的接口 final TargetInterface proxy = (TargetInterface) myProxy.getProxy(target, in); //代理对象(代理了目标对象 Target) proxy.doSomething(); proxy.string(); } }
package com.intercept; /** * 被插入的接口, * */ public interface InterceptorInterface { /** * 在目标方法 前执行 */ public void before(); /** * 在目标方法 后执行 */ public void after(); /** * 在目标方法 异常时执行 */ public void error(); }
package com.intercept; /** * 被插入的方法, 普通方法 * */ public class Interceptor implements InterceptorInterface { @Override public void error() { System.out.println("异常了"); } public void before() { System.out.println("前面插入的方法"); } public void after() { System.out.println("后面插入的方法"); } }
package com.target; /** * TargetInterface接口 ,Target是本接口的实现类 * */ public interface TargetInterface { void doSomething(); void string(); }
package com.target; /** * 目标类, 本类被代理 , 实现了TargetInterface接口 * */ public class Target implements TargetInterface { @Override public void doSomething() { System.out.println("----作个体工作!---"); } public void string() { System.out.println("string()被执行"); } }
package com.intercept; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; /** * 结合 把目标对象, 与包含要插入的方法的对象 结合起来 * */ public class MyHandler implements InvocationHandler { private InterceptorInterface interception; private Object object; /** * 目标对象,将被代理 */ public void setObject(final Object object) { this.object = object; } /** * 本接口的"实现类"的"三个方法"将被插入到"目标对象"的方法前面,后面,异常时 */ public void setInterception(final InterceptorInterface interception) { this.interception = interception; } /** * 结合 */ @Override public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { Object result = null; //先插入一个方法 interception.before(); try { //执行目标方法 result = method.invoke(object, args); } finally { interception.error(); } //后插入一个方法 interception.after(); return result; } }
package com.intercept; import java.lang.reflect.Proxy; /** * 代理类, 核心 * */ public class MyProxy { public Object getProxy(final Object object, final InterceptorInterface in) { final MyHandler myHandler = new MyHandler(); //设置目标对象 myHandler.setObject(object); //设置插入的对象,对象的"三个方法"将被插入到"目标对象"的方法前面,后面,异常时 myHandler.setInterception(in); //返回代理对象 return Proxy.newProxyInstance(object.getClass().getClassLoader(), object.getClass().getInterfaces(), myHandler); } }
附件中有eclipse 的java工程源码
发表评论
-
Struts2 通过"流"下载文件时显示中文文件名
2010-04-10 22:47 5836Struts2 通过"流"下载文件时对结果 ... -
JSONplugin 下载
2009-03-29 10:44 5527地址是: http://code.google.com/p/j ... -
如何在log4j中设置属性把struts2的debug信息去掉
2009-03-28 19:23 12097struts2 在发开时,控制台如输出大量信息,太烦人了 ... -
由Spring管理的Struts2的Action的全程安全问题
2009-03-28 18:57 17300Struts2的Action的线程安全 ... -
Struts2通用的Action配置
2009-03-28 14:03 3611struts.xml 配置一个<action/> ... -
Struts 2中的OGNL
2009-03-28 11:29 2221转自: http://www.blogjava.net/max ... -
常用的Struts 2.0的标志(Tag)介绍
2009-03-28 11:26 1840转自:http://www.blogjava.net/max/ ... -
struts2开发注意事项
2009-03-28 10:30 2582我有一个index.jsp , 是全部的首页, 内容如下 : ... -
12 struts2拦截器
2009-03-19 11:47 2804自己写拦截器, 要认识下面接口 与 类 com.op ... -
10 一个通用的跳入jsp视图的方法
2009-03-17 12:15 2141后注: 以有新的解决方法,请见 Struts2通用的Actio ... -
9 动态调用Action与Action中方法(二)
2009-03-17 12:02 2318其实有 8 动态调用Action与Action中方法(一) ... -
8 动态调用Action与Action中方法(一)
2009-03-17 11:03 3992Struts1 提供了DispatchAction 实现一个A ... -
7 Struts2输入校验(二)----验证框架
2009-03-17 11:02 3378一 文件名约定: 1) 验证XML的文件名: Acti ... -
6 addActionError与addFieldError
2009-03-17 09:21 6688前面的第5讲中用到了addFieldError, 所以这里就 ... -
5 Struts2输入校验(一)----validate方法-validateXxx方法
2009-03-08 16:32 10074这是一种编码校验的方 ... -
4 Struts2类型转换(二)----集合类型
2009-03-08 14:32 2349情况一 : HTML复选框 与 List<Stri ... -
3 Struts2类型转换(一)----常规类型,自定义类型,错误处理
2009-03-08 11:30 5949Struts2的类型转换是基于OGNL表达式的.有良好的扩展性 ... -
2 Struts2的优点与Struts1的区别:
2009-02-28 08:52 4855单实例与多实例有状 ... -
1 struts2标签的定义文件 struts-tags.tld
2008-08-10 15:59 10691在工程中使用struts2标签 一、 struts ...
相关推荐
MyBatis提供动态代理机制,可以通过注解`@Mapper`将Mapper接口自动代理成实现类。Spring Boot项目中,只需在配置类中启用MyBatis自动配置,并扫描Mapper接口所在的包。 ```java @Configuration @...
例子会展示如何获取类的信息,创建动态代理,以及调用私有方法和字段。 10. **注解(Annotation)**:注解是元数据的一种形式,可以用于代码分析,编译时或运行时的处理。例子会展示如何定义和使用自定义注解。 11...
Spring AOP提供了两种代理方式:JDK动态代理和Cglib代理。 Cglib代理是Spring AOP在无法使用JDK动态代理(例如代理的目标对象没有实现接口)时的另一种选择。Cglib是一个强大的、高性能的代码生成库,它基于ASM库来...
7. **反射机制**:通过反射API动态获取类的信息并操作对象,如Class类的使用,以及newInstance()、getMethods()等方法。 8. **泛型**:解释泛型的概念,如何在类、接口和方法中使用泛型,以及类型通配符的运用。 9...
标题中的“django例子201511.epub.7z”表明这是一个关于Django框架的实例教程,被压缩为EPUB格式,并且是2015年11月版本的。EPUB是一种电子书格式,常用于存储含有文本、图片和多媒体内容的文档。而.7z则是7-Zip软件...
11. **反射与动态代理**:反射允许程序在运行时检查和操作类、接口、方法等,动态代理则可以在运行时创建代理对象,拦截并处理方法调用。 12. **泛型**:泛型引入了类型参数,提高了代码的类型安全性和可读性,减少...
在Java中,代理主要通过两种方式实现:接口代理(基于Java动态代理JDK Proxy)和类代理(基于CGLIB等库)。本文关注的是JDK的动态代理,它允许我们为给定的接口创建代理类,以便在调用接口方法时插入自定义逻辑。 ...
#### 11. ASP与脚本编码 对于ASP脚本,为了防止XSS攻击和确保脚本安全性,可以使用Windows Script Encoder工具对ASP脚本进行编码。然而,这一操作需要IE5及以上版本的浏览器支持,并且需要安装相应的脚本引擎。 ##...
- **描述**:动态地给一个对象添加一些额外的职责。就增加功能而言,装饰器模式相比生成子类更加灵活。 - **示例**:为文本处理添加多种格式化选项,如加粗、斜体等。 8. **代理模式**(Proxy) - **描述**:为...
9. **IP代理与反反爬虫策略**:为避免被目标网站封禁,需要了解如何使用IP代理池,以及如何设置User-Agent、Cookies等,模拟人类浏览行为。 10. **网页解析与数据提取**:除了BeautifulSoup,还可以学习其他解析库...
2.3.4 例子:动态嵌入式导航器 24 2.4 在表单和表单对象中使用HTML属性 25 2.4.1 标记的例子 26 2.4.2 例子:RTF文本域的属性 27 2.4.3 例子:cookie 27 2.5 使用表单操作按钮 28 2.6 使用热点 30 2.7 在表单内使用...
8. **事件委托**:使用`.on()`进行事件委托,如`$("body").on("click", ".myItem", function() {...})`,即使动态添加的".myItem"元素也能响应点击事件。 9. **插件使用**:jQuery拥有丰富的插件库,如Bootstrap、...
2.3.4 例子:动态嵌入式导航器 24 2.4 在表单和表单对象中使用HTML属性 25 2.4.1 标记的例子 26 2.4.2 例子:RTF文本域的属性 27 2.4.3 例子:cookie 27 2.5 使用表单操作按钮 28 2.6 使用热点 30 2.7 在表单内使用...
接下来,我们需要设置`UIScrollView`的数据源和代理。在`UIViewController`中遵循`UIScrollViewDataSource`协议,实现`numberOfPages`(对应`numberOfSectionsInCollectionView`或`numberOfRowsInSection`)和`...
11. **代理模式**:为其他对象提供一种代理以控制对这个对象的访问。在需要添加额外控制逻辑或者保护真实对象时,代理模式大显身手。 通过这次设计模式实验,你可以亲自实践并理解每种模式的核心思想、应用场景和...
在这个“DesignPattern-20种设计模式的简单例子”中,我们将探讨20种经典的设计模式,并通过具体实例来理解它们的应用。 1. 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。单例模式常用于配置...
11、动态代理的例子,以及网上动态代理的例子--com.cn21.invocation包。 12、实现可以接受任意接口及其实现类的动态代理--com.cn21.invocation包. 13、实现接口之间的转换,即调用第一个接口会自动转换为第二个接口...
自动布局系统用于在不同尺寸的屏幕上动态调整用户界面。源码可能包含了Auto Layout的约束设置。 12. **通知和代理**: 在iOS开发中,代理和通知是对象间通信的常见方式。源码可能展示了如何实现委托协议或者使用...