java动态代理的简单实现:
2008-08-01 01:42
681 查看
package com.ssh.spring.aop;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class TxHandler implements InvocationHandler {
private static Object original;
public static Object bind(Object o) {
original = o;
return Proxy.newProxyInstance(o.getClass().getClassLoader(), o
.getClass().getInterfaces(), new TxHandler());
}
public static Object bindWithName(String name) {
try {
Class c = Class.forName(name);
original = c.newInstance();
return Proxy.newProxyInstance(c.getClassLoader(),
c.getInterfaces(), new TxHandler());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("我在你先执行");
System.out.println("proxy:" + proxy.getClass().getName());
return method.invoke(original, args);
}
public static void main(String args[]) {
IFun p = (IFun) TxHandler.bindWithName("com.ssh.spring.aop.Fun");
p.sayHiWithYourName("张三");
}
}
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class TxHandler implements InvocationHandler {
private static Object original;
public static Object bind(Object o) {
original = o;
return Proxy.newProxyInstance(o.getClass().getClassLoader(), o
.getClass().getInterfaces(), new TxHandler());
}
public static Object bindWithName(String name) {
try {
Class c = Class.forName(name);
original = c.newInstance();
return Proxy.newProxyInstance(c.getClassLoader(),
c.getInterfaces(), new TxHandler());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("我在你先执行");
System.out.println("proxy:" + proxy.getClass().getName());
return method.invoke(original, args);
}
public static void main(String args[]) {
IFun p = (IFun) TxHandler.bindWithName("com.ssh.spring.aop.Fun");
p.sayHiWithYourName("张三");
}
}
相关文章推荐
- JAVA动态代理 和 Spring AOP 4种通知的简单实现
- Java反射之JDK动态代理实现简单AOP
- Java动态代理之JDK实现和CGlib实现(简单易懂)
- Java动态代理之JDK实现和CGlib实现(简单易懂)
- Java静态代理和动态代理的简单代码实现。
- Java动态代理实现(简单AOP实现)
- java之动态代理简单实现
- Java反射之JDK动态代理实现简单AOP
- JAVA动态代理 和 Spring AOP 4种通知的简单实现
- JAVA动态代理 和 Spring AOP 4种通知的简单实现
- 关于在JAVA中如何实现简单的动态代理
- 使用Java动态代理实现简单AOP
- Java反射之JDK动态代理实现简单AOP
- java的动态代理,jdk动态代理,一个Sping AOP的简单实现
- Java动态代理实现简单AOP
- Java动态代理简单实现
- Java动态代理之JDK实现和CGlib实现(简单易懂)
- java实现简单的动态代理
- JAVA动态代理实现aop的简单例子
- Java动态代理之JDK实现和CGlib实现(简单易懂)火推笔记