首页>代码>java设计模式之代理模式学习和总结>/java_design_pattern/src/cn/com/jee/pattern/proxy/cglib/CglibProxyFactory.java
package cn.com.jee.pattern.proxy.cglib;

import cn.com.jee.pattern.proxy.inter.RealSubject;
import net.sf.cglib.proxy.Enhancer;

/**
 * 工厂类,生成增强过的目标类(已加入切入逻辑)
 * @author Guobaoqiang
 */
public class CglibProxyFactory {
	/**
	 * 获得增强之后的目标类,即添加了切入逻辑advice之后的目标类
	 * 
	 * @param proxy
	 * @return
	 */
	public static RealSubject getInstance(CglibProxyHandler proxy) {
		Enhancer enhancer = new Enhancer();
		// 注意这儿的参数是个关键,是基于委托类的对象,而不是接口对象
		enhancer.setSuperclass(RealSubject.class);
		// 回调方法的参数为代理类对象CglibProxyhandler,最后增强目标类调用的是代理类对象CglibProxyhandler中的intercept方法
		enhancer.setCallback(proxy);
		// 此刻,subject不是单纯的目标类,而是增强过的目标类
		RealSubject subject = (RealSubject) enhancer.create();
		return subject;
	}
}
最近下载更多
莫回头  LV8 2022年5月6日
chenghao4u  LV8 2019年5月8日
jiajia91323  LV23 2019年4月18日
蛇蛇皮怪  LV14 2018年11月9日
alextonn9  LV9 2017年6月14日
houqijun  LV9 2017年3月13日
jiangarctic  LV17 2016年9月18日
jy01757638  LV1 2016年6月15日
Bai_yk  LV17 2016年3月10日
ddman9009  LV25 2016年1月14日
最近浏览更多
水光浮藻  LV6 2022年12月19日
唯你不离不弃  LV5 2021年6月18日
 LV10 2021年6月12日
KoziNong 2021年1月18日
暂无贡献等级
sweetlove  LV20 2020年12月10日
Alen001  LV4 2020年12月3日
xxxxxxlxxl  LV1 2020年6月22日
Hachi6  LV13 2020年6月17日
周海翔  LV3 2020年6月17日
厉害呢  LV9 2020年6月3日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友