读书人

JDK-Proxy署理amp;CGLIB代理

发布时间: 2012-09-04 14:19:30 作者: rapoo

JDK--Proxy代理&CGLIB代理
概述

代理模式主要有两种:静态代理和动态代理





静态代理类图之间的关系







静态代理:比如要在输出“HelloWorld”前打印一个字符串“Welcome”

A:先定义一个接口类





JDK提供的代理只能代理接口,代理类都需要实现InvocationHandler类,实现invoke方法。该invoke方法就是调用被代理接口的所有方法时需要调用的,该invoke方法返回的值是被代理接口的一个实现类。

package com.mypack.test;import org.junit.BeforeClass;import org.junit.Test;import com.mypack.aop.CGLIBProxyFactory;import com.mypack.aop.JDKProxyFactory;import com.mypack.service.PersonService;import com.mypack.service.impl.PersonServiceBean;public class Demo {@BeforeClasspublic static void setUpBeforeClass() throws Exception {}@Testpublic void testJDKProxySave() {JDKProxyFactory factory = new JDKProxyFactory();PersonService personService = (PersonService) factory.createProxyInstance(new PersonServiceBean("liudong"));personService.save();}@Testpublic void testCGLIBProxySave() {CGLIBProxyFactory factory = new CGLIBProxyFactory();PersonService personService = (PersonService) factory.createProxyInstance(new PersonServiceBean("liudong"));personService.save();}}

读书人网 >软件架构设计

热点推荐