コールバックフィルター(数万のオブジェクト)でCGLIBを使用しようとすると、ひどい速度に気づきましたが、CGLIBの最適化に関する情報を見つけることができません。
検索/リストインターフェイスの場合、システムは最適化されたクエリから複数のプロパティを読み込み、ドメインツリーにそれらのプロパティを入力します。他のすべてのプロパティの場合、LazyLoaderはオブジェクト全体をロードしています。アイデアは、ドメインモデルクラスを失うことなく、検索/リストがロードするために使用する基本的なプロパティを持つことです。
基本例
String name = rst.getString(1);
Enhancer enhancer = new Enchancer();
enhancer.setSuperclass(Type.class);
enhancer.setCallbackFilter(new CallbackFilter(){
public int method(Method method){
if("getName".equals(method.getName()){
return 1;
}
return 0;
}
});
enhancer.setCallbacks(new Callback[]{
new LazyLoader(){...}
new FixedValueImpl(name);
});
return (Type)enhancer.create()