package com.activeproxy;
/**
* @ fileName:ProxyFactory
* @ description:
* @ author:zyk
* @ createTime:2021/10/16 10:52
* @ version:1.0.0
*/
import com.util.LogUtil;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
//3.0.0
/**
* 创建动态代理对象
* 动态代理不需要实现接口,但是需要指定接口类型
*/
public class ProxyFactory<T> implements InvocationHandler {
//声明一个目标对象
private T obj;
private LogUtil myLogUtil = new LogUtil();
public ProxyFactory(T obj) {
this.obj = obj;
}
public ProxyFactory() {
}
//获取代理对象
public T getProxyObj() {
T proxyInstance = (T)Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);
return proxyInstance;
}
/**
* @ author:zyk
* @ description:目标对象的方法被调用的时候,自动执行invoke方法中的内容
* @ param:[proxy, method, args]
* @ return:java.lang.Object
**/
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("目标对象方法开始执行");
//方法执行之前增强处理
Object o = method.invoke(obj, args);
//方法执行后增强处理
myLogUtil.log(method.getName());
return o;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
proxy.rar (51个子文件)
proxy
proxy.iml 81B
pom.xml 787B
target
generated-sources
annotations
classes
com
cglibproxy
ProxyCGlib$1.class 1KB
ProxyDynamicCGlib.class 1KB
Test1.class 736B
ProxyDynamicCGlib$1.class 1KB
ProxyCGlib.class 1KB
ProxyFactory.class 2KB
dao
UserDaoImpl.class 519B
PersonDao.class 496B
UserDao.class 124B
staticproxy
ProxyStaticInterface.class 1KB
ProxyStaticExtents.class 703B
UserDaoProxy.class 687B
ProxyTest.class 695B
activeproxy
Test.class 2KB
ProxyDynamicInterface.class 2KB
FactoryTest.class 970B
ProxyFactory.class 2KB
service
impl
ComputerServiceImpl.class 793B
PhoneServiceImpl.class 943B
PhoneService.class 163B
util
LogUtil.class 746B
src
test
java
main
resources
java
com
cglibproxy
ProxyFactory.java 1KB
ProxyCGlib.java 939B
Test1.java 785B
ProxyDynamicCGlib.java 1KB
dao
UserDaoImpl.java 299B
UserDao.java 198B
PersonDao.java 293B
staticproxy
ProxyStaticInterface.java 622B
UserDaoProxy.java 547B
ProxyTest.java 748B
ProxyStaticExtents.java 622B
activeproxy
ProxyDynamicInterface.java 1KB
ProxyFactory.java 1KB
Test.java 1015B
FactoryTest.java 1KB
service
impl
PhoneServiceImpl.java 458B
ComputerServiceImpl.java 305B
PhoneService.java 485B
util
LogUtil.java 326B
.idea
.gitignore 184B
easyCodeTableSetting.xml 9KB
workspace.xml 6KB
misc.xml 513B
jarRepositories.xml 880B
inspectionProfiles
Project_Default.xml 1KB
compiler.xml 538B
codeStyles
codeStyleConfig.xml 153B
sbt.xml 159B
共 51 条
- 1
爱笑的tiger
- 粉丝: 17
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0