cglib 动态生产类原理
来源:互联网 发布:做菜软件哪个好 编辑:程序博客网 时间:2024/04/29 14:25
主要功能,拦截javaBean的方法,
首先创建一个拦截类,实现MethodInterceptor接口。
/** * */package org.interceptor;import java.lang.reflect.Method;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;/** * 创建人:HF * * 创建日期:Jan 15, 2013 * 文件名称:org.interceptor.org.Interceptor * @version 1.1 * --------------修改记录说明---------------------- * 修改时间: * 修改内容: * 修改原因: * 修改人: * 修改后版本: */public class LazyInitializer implements MethodInterceptor {public static Object createBean(Class<?> clazz){Enhancer enhancer = new Enhancer() ;enhancer.setSuperclass(clazz) ;enhancer.setCallback( new LazyInitializer() ) ;return enhancer.create() ; }@Overridepublic Object intercept(Object obj, Method method, Object[] args,MethodProxy proxy) throws Throwable {return proxy.invokeSuper(obj , args ) ;}}
下面可以创建javabean类:
package com.entity;import com.enums.Sex;public class User {/** * */private static final long serialVersionUID = -5712249899395165324L;private String name ; private Sex sex ; private Double weight ;public Double getWeight() {return weight;}public void setWeight(Double weight) {this.weight = weight;}public String getName() {return name ;}public Sex getSex() {return sex ;}/** * @param name the name to set */public void setName(String name) {this.name = name;}/** * @param sex the sex to set */public void setSex(Sex sex) {this.sex = sex;}}
动态创建拦截类:
import org.interceptor.LazyInitializer;import com.entity.User;public class Test {public static void main(String[] args)throws Exception {User user = (User) LazyInitializer.createBean(User.class) ;user.setName("张三") ; }}
资源地址:http://download.csdn.net/detail/hfmbook/4997876
- cglib 动态生产类原理
- Cglib实现动态代理原理
- Cglib实现动态代理原理
- cglib动态代理实现原理
- cglib动态创建类
- CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- 【转载】CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- 【转载】CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- CGLib动态代理原理及实现
- 关于web app,选择 PhoneGap、Sencha Touch 或者 jQuery Mobile 哪个比较好
- MFC warning LNK4070处理
- VS2010使用C++/CLI编程窗口无法显示问题解决方法
- plist文件创建,储存,转化
- 工厂模式
- cglib 动态生产类原理
- 推广经验分享
- HEVC学习(二十六) —— 量化之一
- css笔记小结
- 跨部门工作安排与绩效考评解决方案
- ubuntu12.04 修改mysql默认编码方式
- 计划任务工具 cron crontab的配置和说明
- android camera(一):camera模组CMM介绍
- GCD 多线程(一)