主测试类: (BulkBean、FastClass的使用测试代码没保存)
import net.sf.cglib.proxy.Callback;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by Administrator on 2014/11/25.
*/
public class Main {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext(new String[]{"service.xml"});
BeanA obj = (BeanA) ctx.getBean("beanA");
System.out.println(obj);
System.out.println(obj.getName());
}
public static class MyCallBack implements MethodInterceptor, Callback {
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
System.out.println("invoke method : " + method.getName());
return methodProxy.invokeSuper(o, objects);
}
}
public static Method[] getGetMethods(Class clazz) throws Exception {
Field[] arr = getFields(clazz);
Method[] methods = new Method[arr.length];
for (int i = 0; i < arr.length; ++i) {
String methodName = getMethodName("get", arr[i].getName());
Method method = clazz.getMethod(methodName, new Class[]{});
methods[i] = method;
}
return methods;
}
public static String[] getGetMethodNames(Class clazz) throws Exception {
Field[] arr = getFields(clazz);
String[] methods = new String[arr.length];
for (int i = 0; i < arr.length; ++i) {
Stri