import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class JdkProxyTest { /*** * 动态代理的测试方法 * * @param args */ public static void main(String[] args) { StudentProxy studentProxy = new StudentProxy(new Student()); IStudent iStudent = (IStudent) studentProxy.getProxyInstence(); iStudent.say(); } } /*** * 代理类 实现了jdk 动态代理的方法 * * @author bobo * */ class StudentProxy implements InvocationHandler { /** * 要代理的目标对象 */ private Object target; /*** * 代理方法的执行处 */ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // 此处的proxy 是个什么东东呢 实在是不能理解啊 System.out.println(proxy.getClass().getInterfaces().length); System.out.println("before..."); Object obj = method.invoke(target, args); System.out.println("after..."); return obj; } /*** * 获得代理对象的地方 * * @param c * @return */ public Object getProxyInstence() { return Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), target.getClass().getInterfaces(), this); } public StudentProxy(Object obj) { this.target = obj; } } /** * 要被代理的类 * * @author bobo * */ class Student implements IStudent { public String say() { System.out.println("Student.say()"); return "i say:"; } } /*** * 被代理的类要是实现的接口 * * @author bobo * */ interface IStudent { String say(); }
相关推荐
6. **动态代理**:增强了反射API,使得创建动态代理类更为便捷。 7. **XPath和XSLT支持**:内置了XML处理功能,简化了XML文档的处理。 8. **增强的安全性**:加强了加密算法和安全协议,提供了更安全的网络通信。 9....
- **动态代理类**:增加了`java.lang.reflect.Proxy`类,允许开发者创建动态代理对象,方便实现接口或拦截方法调用。 - **NIO.2**:引入了新的非阻塞I/O API(New I/O,即NIO.2),提供了更强大的文件系统操作和...
7. **动态代理(Dynamic Proxies)**:JDK 1.6改进了动态代理机制,使得创建接口代理对象更加容易,这对于实现AOP(面向切面编程)或动态服务提供很有帮助。 8. **国际化和本地化增强**:对日期、时间、货币和数字的...
2. **动态代理类**:Java语言规范在1.6版本中增加了对动态代理的支持,允许在运行时创建代理类,这对于实现AOP(面向切面编程)和回调机制非常有用。 3. **Swing增强**:Swing组件库在JDK 1.6中得到了更新和优化,...
这在动态代理、元数据处理等方面有着广泛的应用。 7. **Swing和AWT**:这两个是Java的图形用户界面(GUI)库,用于创建桌面应用。学习如何使用组件、布局管理器和事件处理是开发交互式应用的必修课。 8. **网络...
元类是关于类的类,提供了运行时访问和修改类信息的能力,这对于动态代理和AOP(面向切面编程)等高级技术至关重要。 最后,JDK 1.8的文档(如提供的CHM文件)是学习这些新特性和API的重要资源。它详尽地解释了每个...
2. **动态代理增强**:增加了对生成类的注解支持,使得动态代理的使用更为灵活。 3. **NIO.2**:引入了新的文件系统API,提供了更强大、更灵活的文件操作功能。 4. **脚本语言支持**:通过JSR 223,JDK 6开始支持...
1. **JDK6**:引入了改进的Swing组件、动态代理增强、增强的for循环(foreach)、可变参数(varargs)、枚举类型的遍历、异常链以及注解(Annotations)。其中,注解是面向元数据编程的重要特性,可以用于编译时和...
3. **动态代理**:`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口的引入,使得动态创建代理对象成为可能,便于实现AOP(面向切面编程)。 4. **NIO.2**:JDK 1.6引入了NIO.2,即新的非...
- **配置代理**:编辑`/usr/local/apache/conf/httpd.conf`,取消注释代理配置,使其能够代理到Tomcat的AJP端口。 - **虚拟主机配置**:编辑`conf/extra/httpd-vhosts.conf`,配置虚拟主机指向Tomcat的Web应用目录。...
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。 **安装步骤**: 1. 下载Nginx压缩包。 2. 将压缩包上传至服务器。 3. 解压Nginx压缩包。 4. 安装Nginx所需的依赖包。 5. 进入Nginx目录...