問題タブ [cglib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - HibernateTemplate を使用した CGLIB プロキシ エンティティの永続化
私はほとんどどこでも検索しましたが、誰もこの問題を抱えていないようです。Spring MVC アプリケーションがあります。コンテキスト構成ファイルでリクエスト スコープ Bean として宣言され、UsersController によって参照される UserImpl エンティティがあります。UsersController によって参照される UserImpl オブジェクトは、実際には CGLib プロキシです (理由は次のとおりです)。このようなプロキシ オブジェクトを HibernateTemplate で最初に永続化しようとしたときに、次のエラーが発生しました。
org.hibernate.MappingException: 不明なエンティティ: main.mvc.model.hibernate.UserImpl$$EnhancerByCGLIB$$9ac49631
いくつかの検索の後、私は次のようなものを見つけました:
org.springframework.orm.hibernate3.support.ScopedBeanInterceptor
問題をちょっと解決しました。今、私は MappingException を取得せず、エンティティは永続化されますが... データベース レコードのすべてのフィールドが null です。どうしたの?
注: UserImpl インスタンスをハードコーディングし、それを UserServiceImpl で永続化すると、すべて問題ありません。
コンテキスト構成の一部:
ユーザーコントローラー:
UserServiceImpl:
更新
OKなので、ScoppedBeanInterceptorで処理されている間にエンティティオブジェクトに何が起こるかをAOPマジックの追加出力に追加しました。無傷です。Hibernate の BasicBinder は null 値を SQL ステートメントにバインドしていますが。何か助けはありますか?
ログ:
hibernate - CGLIB拡張に失敗しました:引数タイプの不一致
次のエラーが発生します:
VocabDomainリスト:
次のコマンドの実行中にコードが失敗します。Queryq=sessionFactory.getCurrentSession()。createQuery( "SELECT vsd FROM VocabSubdomain vsd LEFT JOIN vsd.vocabSubdomainsLocs"); リストvsdl=q.list();
pom.xmlの依存関係
spring - EhcacheCacheManagerでのCGLIBプロキシの使用
SpringアプリケーションでSpringAOPを使用したい。のAOPプロキシを作成しているときにnet.sf.ehcache.CacheManager、Springコンテキストの初期化は次の例外を除いて失敗します。
この問題についての私の理解は次のとおりです-SpringはのAOPプロキシを作成しようとしていますnet.sf.ehcache.CacheManagerが、これは初めて成功し、CacheManagerにデフォルトの名前を付けます__DEFAULT__(これは、デバッグステートメントをehcacheコードに追加し、ソースごとにビルドして、私の応用)。'abcCacheManager'や'xyzCacheManager'(タイプEhCacheManagerFactoryBean)のような複数のキャッシュマネージャーがある場合、Springは複数net.sf.ehcache.CacheManagerのsに遭遇し、それらすべてのプロキシオブジェクト(のようなものnet.sf.ehcache.CacheManager$$EnhancerByCGLIB$$b18c5958)を作成しようとしますが、EhCache>=2.5バージョンでは同じVMの下に同じ名前のキャッシュを複数持つことはできません。
私はEhCache2.5.1を使用していますが、この目的のためだけに2.4に戻ることは避けたいと思います。これが本当に問題なのか、どうすればこの問題を克服できるのかわかりません。
注:これが役立つかどうかは確認してください。ただし、デバッグステートメントから、CacheManagerno-argコンストラクターはspring / CGLIBプロキシジェネレーターによってのみ呼び出され、xyzCacheManager引数として構成を渡すことによって呼び出されることにも気づきました。
java - モデルを自動保存する動的プロキシ
プロキシを使用してオブジェクトを追跡し、 set* メソッドが呼び出されたときにそれらを保存することで、Java で自動マジックを発生させようとしています。私はJavaの組み込みプロキシを使い始めましたが、すべてうまくいきましたが、理解できることから、すべてのモデルにインターフェースが必要であり、これは私が避けようとしているものです.
ここで CGLIB の出番です。インターフェイスを使用せずにモデルのプロキシを作成できます。しかし、保存しようとしている元のオブジェクトを取得するにはどうすればよいですか?
最適な解決策は、hibernate で使用される EntityManager インターフェイスのようなもので、元のオブジェクトを保持しますが、追跡されます。
spring - XML を構成クラスに変更する方法は?
すみません、私は英語が少し嫌いです。
私を助けてください。問題があります。
@Configuration と @Bean を使用するために、XML を Java クラスに変更したいのです。
私はどのように行いますか ??
変更したいのは以下です。
特に「module-context.xml」はわかりません...
ただ知りたいだけです。
起動コンテキスト.xml
モジュールコンテキスト.xml
誰か教えてください。
java - CGLib プロキシと空のコンストラクタなし
クラスBのプロパティを持つクラスAがあると考えてみましょう。
いいえ、CGLIB プロキシがあります。
さて、CGLibClassA に使用すると、プロキシは ClassA インスタンスを作成します。
私の質問は、classB パラメーターをこのプロキシに渡す方法です。私が理解している限り、CGLib は ClassA の空のコンストラクターを実行しますか?
java - spring cglib プロキシの問題を回避する
春に cglib プロキシを使用すると、次のことが発生します。
a) コンストラクターの二重呼び出し
b) 別のメソッドから呼び出されたメソッドをインターセプトすることを許可しない
しかし、なぜ spring は Bean を作成してからプロキシを作成するのでしょうか? 指定された Bean クラスを拡張するクラスを動的に生成し、コンストラクターを 1 回だけ呼び出すことは可能ですか? これにより、パブリックおよび保護されたメソッドの a) および b) が解決されます。私は何かを逃していますか?
android - Mockito1.9.5およびDexMaker-Mockito-1.0を使用したVerifyError
他の多くの人と同じように、MockitoがAndroidで動作するようになったと聞いて興奮し、このチュートリアルに従って自分の目でそれを確認しました。すべてがファンの羽ばたきのようで、Androidテストプロジェクトにモックソリューションを組み込んでいます...
エラー
mockito-all-1.9.5ただし、dexmaker-1.0とjarを活用するようにアプリケーションのテストプロジェクトを設定するdexmaker-mockito-1.0と、最初のテストケースで問題が発生しました。まさにこの問題は実際に。私が支援を求めているのは、
スタックトレースはDexMakerjarが使用されていないことを示しているため、これは「まだ完全には機能しない」と通知されています。この応答を参照してください。ただし、プロジェクトの設定に関して何か問題があるのではないかと疑っています。そのため、ここにある集合的なナレッジベースから、これが実際にユーザーエラーなのかベータバグなのかを確認したいと考えています。
私のAndroidテストプロジェクトのセットアップ
テストプロジェクトの構成のスクリーンショットを以下に示します。プロジェクトはAndroidウィザードを介して作成され、ディレクトリの下にMockitoおよびDexMaker jar(上記)が含まれていること以外の特別な機能は共有していませんlibs。

テスト
テストの内容(単体テストが実行される前にテストが失敗する)を気にしないでください。セットアップは以下のとおりです。
誰かが何が悪いのか考えているなら、ここで音を立ててください。
java - バイトコード操作は、実行時にJavaメソッドの戻り型を変更できますか?
私はバイトコード操作でこのようなことをすることが可能かどうか疑問に思いました:
今私は電話したい:
Stringパラメーターのオーバーロードhiメソッドを呼び出します。
mockito - 実行時にmockitoモック自体をラップできますか?
実行時に Mockito によって作成されたモックをラップし、ラッパーでメソッドを呼び出すと、ラップされたモックは呼び出されません。下記を参照してください:
これは私が実行するテストです:
ここで、バーは次のとおりです。
テストは失敗し、得られる出力は次のとおりです。
Bar を次のようにクラスにすると:
テストは引き続き失敗fooし、コンソールに出力され、出力が得られます。
私は混乱しています。
私が解決しようとしている実際の問題は、ラップされた動的プロキシのメソッド呼び出しをメモ化するために、(コンポーネント バインディングを介して Mule によって注入された) 動的プロキシをラップすることです。インターフェイスを拡張しなくても動的プロキシ オブジェクトをラップできるように、十分に汎用的なものにしたいと考えています。
ありがとう