Jdk动态代理,CGLib字节码生成
如果目标对象实现了接口,可以使用jdk动态代理和CGLib。
如果没有实现接口,只能使用CGLib。
Jdk动态代理要实现一个接口:InvocationHandler
public
class SecurityHandler implements InvocationHandler {
//目标对象,对该目标对象生成代理
private Object targetObject;
//生成代理对象,当生成完代理对象,调用代理对象上的方法时,默认先调用invoke方法。
public Object newProxy(Object
targetObject) {
this.targetObject =
targetObject;
return
Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),
targetObject.getClass().getInterfaces(),
this);
}
public Object invoke(Object proxy,
Method method, Object[] args)
throws Throwable {
checkSecurity();
//目标对象方法的返回值
Object ret = null;
try {
//调用目标对象的真实实现
ret = method.invoke(this.targetObject,
args);
}catch(Exception
e) {
e.printStackTrace();
throw new
java.lang.RuntimeException(e);
}
return ret;
}
private void checkSecurity() {
System.out.println("----------checkSecurity()---------------");
}}
//使用动态代理
public
static void main(String[] args) {
SecurityHandler handler = new
SecurityHandler();
UserManager userManager =
(UserManager)handler.newProxy(new UserManagerImpl());
//userManager.addUser("张三", "123");
userManager.deleteUser(1);
}
分享到:
相关推荐
动态代理的代码例子 里面敲好了注释 搭配文章观看更好
java代理机制 JDK动态代理和cglib代理 详解
AOP之JDK动态代理和CGLib动态代理 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45195383
NULL 博文链接:https://jummy.iteye.com/blog/255628
jdk 和 cglib的简单动态代理,闲来无事 写写。有需要的朋友可以看看
java静态代理 jdk动态代理 cglib动态代理 代理原理
实现java动态代理的两个实例,jdk动态代理和cglib
jdk 的动态代理和CGLIB代理
JAVA动态代理实现Demo(JDK动态代理和CGLIB动态代理)
Spring框架的AOP中重要的一个知识点,动态代理,springAOP框架会根绝实际情况选择使用jdk的动态代理还是cglib的动态代理
bcprov-jdk15to18-1.69.jar bcprov-jdk15to18-1.69.jar bcprov-jdk15to18-1.69.jar bcprov-jdk15to18-1.69.jar bcprov-jdk15to18-1.69.jar bcprov-jdk15to18-1.69.jar bcprov-jdk15to18-1.69.jar bcprov-jdk15to18-...
JDK动态代理和Cglib动态代理实例源码
静态代理、jdk动态代理、cglib动态代理
包含 bcmail-jdk15on-1.58,bcprov-jdk15on-1.58,bcpkix-jdk15on-1.58 3个jar
动态代理-jdk、cglib、javassist
bcprov-ext-jdk15on-1.54.jar和bcprov-jdk15on-1.54.jar压缩文件
赠送jar包:bcmail-jdk14-1.38.jar; 赠送原API文档:bcmail-jdk14-1.38-javadoc.jar; 赠送源代码:bcmail-jdk14-1.38-sources.jar; 赠送Maven依赖信息文件:bcmail-jdk14-1.38.pom; 包含翻译后的API文档:bcmail...
该资源里面有Jdk动态代理,cglib动态代理,反射和拦截器(链)示例,里面也有所需要的jar包,下载下来导入eclipse即可运行,有问题请问我
该压缩文件包含bcprov-ext-jdk15on-1.54.jar和bcprov-jdk15on-1.54.jar,bcprov-jdk15on-154中移除了一些加密算法,bcprov-ext-jdk15on-154中依然保留。可以解决JDK1.6 HttpClient访问https网页报的错