問題タブ [hk2]
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.
java - FactoryModuleBuilder による HK2 相当のアシスト インジェクション
jersey 2 への移行のおかげで、guice から HK2 に移行する必要があります。私は、HK2 で実装するのに頭を悩ませることができなかったいくつかの依存関係に対して、支援された注入アプローチを持っています。カスタム インジェクション リゾルバーを介して解決されるはずのように見えますが、実際にはその方法がわかりません。例は私にとって十分に明確ではありません..
Guice での表示は次のとおりです。
これをHK2に実装するにはどうすればよいですか?
java - Jersey: http パラメータを挿入するときにクラスをトレースします
Web サービスのパラメーターに多くの AbstractParamConverter を使用するために、独自の ParamConverterProvider を実装しました。
たとえば、次のような 2 つの単純な Web サービスがあります。
Web サービスが http パラメーターをバインド/挿入するときにクラス名をログ (トレース) したい。
例: 「MyWs.class バインディング パラメータ [myobject] と MyObject.class から」
実際、次のクラスに移動すると:
クラス名情報が失われます。
ParamConverterProvider またはクラス名をトレースする他の何かにパラメーターを挿入できる場合は、私にアドバイスしてください。
ありがとう
java - 起動時に Jersey 2 エンドポイントを熱心に初期化するにはどうすればよいですか?
@Singleton
Jersey 1.x からいくつかのコードを移植しています。さまざまなヘルス チェック エンドポイントの実装は、実行するチェックを検出できるように、起動時に初期化されるすべてのエンドポイント リソースに依存しています。
Jersey 2.0では、起動時にリソースエンドポイントを初期化できないようで、それぞれが初めてアクセスされたときにのみ構築+初期化されます。
クラスで自分で初期化できるApplication
と思いますが、パッケージスキャンを使用したいと思います!
パッケージのスキャン中に見つかったすべてのリソース エンドポイントを熱心に初期化するように Jersey 2 に指示する構成オプションがあるかどうか、誰にもわかりませんか?
それともHK2の注釈やトリックですか?
jersey - Jersey 2(Jettyを使用)をブートストラップする正しい方法は何ですか?
HK2インジェクションを使用してJersey / Jettyのセットアップを機能させる方法をハックすることができましたが、見つけた膨大な数のやや紛らわしい(そして時には一貫性のない)ドキュメントを考えると、いくつか見逃したかどうかはわかりませんそれを正しくするための顕著な詳細..現状では、このようにサーブレットをブートストラップしています。
AppResourceConfig を次のように定義します。
そして私のAppBinderとして;
これはすべて私の単純なテストケースで機能しますが、いくつかの点が不明です。Jersey のドキュメントは、私が拡張すべき Application クラスを参照し、Injections.addBinding を使用してバインディングをセットアップします。ただし、これを行うために、@Inject を使用して ServiceLocator インスタンスをコンストラクターに取得しています。そして、彼らはバインダーをまったく作成していないように見えますか? ( https://jersey.java.net/documentation/latest/migration.html -- 26.14.1.1. カスタム オブジェクトの注入)。
誰かが私のアプローチが正しいかどうかに光を当て、おそらく Application と ResourceConfig の違いと、フレームワークの意図との一貫性を保つために実際に何をすべきかについて教えてもらえますか?
jersey-2.0 - HK2 別の AbstractBinder のバインディングをオーバーライドする適切な方法は何ですか?
私は Guice の世界から来て、Guice が提供する Modules.override に似た方法を探しています。プロダクション用にベース Module/AbstractBinder を作成し、テストで変更が必要なバインディングをオーバーライドするパターンがあります。
理想的な世界では、単純に Parent AbstractBinder を拡張してから、バインドを実装して親バインダーをオーバーライドしたいと考えています。または、親バインダーをインストールしてから、テスト目的で必要なバインディングをオーバーライドするという別の方法もあります。
これは可能で、推奨されますか? これを行ったときに、IOCRestModule のバインディングが IOCMockRestModule によってオーバーライドされていないことに気付きました。最後にインストールを追加できると想定していますが、これは機能する可能性がありますが、後で問題が発生するかどうかはわかりません.