spring学习笔记cglib
来源:互联网 发布:ant打包java配置文件 编辑:程序博客网 时间:2024/06/16 09:45
package com.lin.test;
import java.lang.reflect.Method;
import org.junit.Test;
import org.springframework.cglib.proxy.Enhancer;
import org.springframework.cglib.proxy.MethodInterceptor;
import org.springframework.cglib.proxy.MethodProxy;
/**
* CGLIB 拦截器的一个demo
* @author linfenliang
*
*/
public class CglibProxyTest {
@Test
public void test() {
UserDao dao = new UserDaoImply();
UserDaoCglibProxy proxy = new UserDaoCglibProxy();
dao =(UserDao) proxy.proxy(dao);
dao.userLogin("linfenliang", "123456");
}
}
abstract class UserDao{
public abstract void userLogin(String username,String password);
}
class UserDaoImply extends UserDao{
@Override
public void userLogin(String username, String password) {
System.out.println("username:".concat(username).concat(",password:").concat(password));
}
}
class UserDaoCglibProxy implements MethodInterceptor{
public Object proxy(Object obj){
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(obj.getClass());
enhancer.setCallback(this);
return enhancer.create();
}
private boolean checkParamsValid(Object value){
System.out.println("ready to check paramters:"+value);
return value!=null ;
}
private boolean checkResultValid(String value){
System.out.println("check result .");
return value!=null;
}
@Override
public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
checkParamsValid(args[0]);
checkParamsValid(args[1]);
obj = proxy.invokeSuper(obj, args);
checkResultValid(null);
return obj;
}
}
- spring学习笔记cglib
- Spring学习笔记(14)----使用CGLIB实现AOP功能
- CGLIB学习笔记
- cglib代理学习笔记
- spring 学习基础笔记 包括spring 的代理 JDK CGLIB 事物 AOP 以及各种注入
- spring学习笔记6--简单模拟实现AOP(cglib版)
- Spring学习笔记--AOP的简略实现(基于J2SE动态代理与CgLib)
- spring学习笔记(7)AOP前夕[2]CGLib动态代理实例解析
- 【Spring学习29】cglib的Lookup方法
- jdk/cglib动态代理学习笔记
- CgLib动态代理学习【Spring AOP基础之一】
- spring aop学习7:Cglib动态代理(基于继承代理)
- 浅谈CGLIB动态代理和JDK动态代理 学习笔记
- Spring-cglib代理
- spring aop as cglib
- spring中CGLIB代理
- 【Spring】cglib代理
- Spring-AOP-cglib实现
- 第三方开源库:下拉刷新和上拉加载更多:PullLoadMoreRecyclerView + CommonPullToRefresh + SpringView+。。。
- 【C#总结】--颗粒归仓
- 有效回文串
- spring学习笔记SpringAopAspect
- spring学习笔记SpringJdbc
- spring学习笔记cglib
- spring学习笔记注解(部分)
- spring学习笔记aopproxy
- spring学习笔记工厂模式
- iOS逆向 — 逆向微信,透视聊天背景
- maven在eclipse中自动化远程发布
- jQuery Mobile页面跳转后未加载JS解决办法
- 机器学习--Hoeffding Inequality--界定概率边界
- TextView加载html代码显示图片,并且支持图片放大功能