分享

TestCGLIB03 .Java

 金银宝100 2017-12-24
package service;

import java.lang.reflect.Method;
import java.util.logging.Logger;

import org.junit.Before;
import org.junit.Test;

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.InvocationHandler;
import project.service.UserService;

public class TestCGLIB03 {
private static Logger log=
Logger.getLogger("TestCGLIB01");
private UserService proxy;
@Before
public void init(){
//1.构建目标对象
final UserService userService=
new UserService();
//2.创建代理对象
//2.1创建增强器对象
Enhancer e=new Enhancer();
//2.2设置增强器的类加载器
e.setClassLoader(
userService
.getClass()
.getClassLoader());
//2.3设置代理对象父类类型
e.setSuperclass(
userService.getClass());
//2.4设置回调函数
e.setCallback(new InvocationHandler() {
public Object invoke(
Object proxy,
Method method,
Object[] args)
throws Throwable {
log.info("begin tx");
Object obj=
method.invoke(userService, args);
log.info("end tx");
return obj;
}
});
//2.5创建代理对象
proxy = (UserService)e.create();
}
@Test
public void testSaveUser(){
proxy.saveUser("tedu");
}
@Test
public void testUpdateUser(){
proxy.updateUser("tedu");
}
}
//JUnit (单元测试):基于方法单元进行测试





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多