当cglib遇到单例 本帖最后由 fanyi0829 于 2014-06-19 09:15:23 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我昨晚仔细对比了一下我修改private为public的class和未经修改的public的class每一个属性有什么不同,最终发现是Construtor里的一个override属性变化了,其他都是相同的.(注,这些属性是在createProxyInstance方法,在eclipse的debug试图variables窗口查看target所看到的.)我今天尝试修改这些override属性,以保证private修改后的class和未经修改的public的class所有属性完全一致,看是否通过验证? 这个应该能解决了吧,我试了下 Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(target); enhancer.setCallback(new TecLazyCacheProxy<T>()); enhancer.setInterceptDuringConstruction(false); proxyInstance = (T) enhancer.create();这几句代码因为我没有cglib所以直接换成了proxyInstance = (T) target.newInstance();;没有报错,是正常的,楼主试试,其他代码都没改,还是单例。 可能是我没有表达清楚...你这样就没有使用cglib啊,产生的就不是代理,不是代理就不能进cglib的intercept方法,在intercept方法里我是做了一些操作的...因此必须产生代理,且为private的单例... 我现在已经把override改为一致了,可惜还是通不过cglib... 我现在已经把override改为一致了,可惜还是通不过cglib...不知道是不是哪里还有不一致的地方,或者说这种思路根本不可行?? 还在通过cligb的public类 和 被我修改为public的private类有何区别,眼睛都看花了.. 难点:谁看看这个按钮怎么添加不上 求算法 单循环比赛 赛程安排 在线急等:请问各位大侠:java调用VC++6.0写的包括显示对话框的动态库的问题? 请教一字符串替换问题 java 里面resultset对象的什么方法能返回字段名??(JDBC) char c = '\u00A0'; \u00A0是什么意思? 求解!高手们帮我看看吧!三天了。。。 如何得到结果集中的纪录数 从数据库得到多字段内容为何出错? 菜鸟新手制作五子棋小游戏出现小问题,请大神解答 数据库连接 关于通配符 Pair<? super Manager> 的疑问
我今天尝试修改这些override属性,以保证private修改后的class和未经修改的public的class所有属性完全一致,看是否通过验证?
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(target);
enhancer.setCallback(new TecLazyCacheProxy<T>());
enhancer.setInterceptDuringConstruction(false);
proxyInstance = (T) enhancer.create();这几句代码因为我没有cglib所以直接换成了proxyInstance = (T) target.newInstance();;没有报错,是正常的,楼主试试,其他代码都没改,还是单例。
可能是我没有表达清楚...你这样就没有使用cglib啊,产生的就不是代理,不是代理就不能进cglib的intercept方法,在intercept方法里我是做了一些操作的...
因此必须产生代理,且为private的单例...
我现在已经把override改为一致了,可惜还是通不过cglib...
我现在已经把override改为一致了,可惜还是通不过cglib...
不知道是不是哪里还有不一致的地方,或者说这种思路根本不可行??