JDK动态代理和cglib的区别

目录 技术
分类:
  • 基于接口的动态代理
  • 基于子类的动态代理
cglib基于子类的动态代理:
  • 涉及的类:Enhancer
  • 提供者:第三方cglib库
-如何创建代理对象:
  • 使用Enhancer类中的create方法
-创建代理对象的要求:
  • 被代理类不能是最终类
-newProxyInstance方法的参数:在使用代理时需要转换成指定的对象
  • ClassLoader:类加载器,用于加载代理对象字节码的。和被代理对象使用相同的类加载器。固定写法
  • Callback:用于提供增强的代码,一般写的都是该接口的子接口实现类,MethodInterceptor

继续阅读 “JDK动态代理和cglib的区别”

通过反射简化模型中多次get set方法

目录 技术

在某些场景里Javabean包含了大量的字段,很多程序员会通过一个一个set get来匹配,这种写法不但繁琐而且代码冗余不好看且维护起来很麻烦,我们可以通过反射来解决:

之后如果DemoModel再扩展字段,不再需要额外地写set、get,只要满足set、get的命名规范约定,直接在paramList里面补充字段名字就可以,后续可扩展性好很多。