問題タブ [jsr330]

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.

0 投票する
2 に答える
2043 参照

java - JSR 330 と Guice の相互運用性

JSR 330 と Guice の経験がある人はいますか? 私が収集したものから、Guice は JSR 330 の実装ではありませんが、Hibernate や JPA のようなものである場合、実装は API の追加機能をサポートしていません。私はすでに GWT-Dispatch や Warp-persist guice-servet などを使用していますが、JSR 330 をサポートする EJB コンテナーに移行することで何か得られるものはありますか?

0 投票する
11 に答える
32276 参照

java - RESTfulサービスにJerseyとGuiceを使用するための実用的なアドバイス

私がオンラインで見つけたものから、Guice + Jersey統合の最先端は、両方のチームが行き詰まったように見える2008年以来停滞しています。問題の核心は、JAX-RSアノテーションがフィールドとメソッドの注入を実行することであり、これはGuice自身の依存性注入とうまく機能しません。

私が見つけたいくつかの例は、解明するのに十分ではありません:

  • IqbalyusufのJersey+Guice on Google App Engine Javaに関する投稿は、多くの定型文(手動でインジェクターを取得して呼び出す)に悩まされています。バインディングとインジェクションは、Guiceアノテーションを介して舞台裏で行われる必要があります。

  • Jonathan Curranの記事「Jersey、Guice、およびJSR-250を使用したRESTfulサービスの作成」は、はるかに新しい(2010)ため、希望を与えてくれましたが、GuiceServletModule内でJerseyサービスを開始する方法を示しただけでした。ただし、実際の依存性注入を行う例はありません。それは読者の練習問題として残されたと思います。Curranの投稿は、実際にはGuiceとJerseyを接続するための正しい最初のステップである可能性があるため、それから始める予定です。

  • 食欲をそそるジェームズ・ストラチャンはこう書いています

    JAX-RSは、Spring、Guice、GuiceyFruit、JBossMCなどの依存性注入フレームワークでうまく機能します。基本的にはどちらかを選択できます。

    しかし、開業医の観点からは真実であるという証拠は見当たりません。

私が不足しているのは、JAX-RSとGuiceアノテーションを組み合わせる方法に関する実際的な例と説明です。例えば:

  • ジャージーがこれを制御したいので、どのリソースでもコンストラクターインジェクションを使用できないと思います
  • @Injectを@PathParam、@QueryParamなどと組み合わせることができるかどうかはわかりません。
  • MessageBodyWriter実装でインジェクションを使用する方法

プロセスでどちらか一方を犠牲にすることなく、JerseyとGuiceを組み合わせた重要なアプリケーションの例を、できればソースとともに誰かが持っていますか?私は関係なくこの道を進んでいますが、ジャージーとギスのリストの断片は、私の前に来た他の人の仕事を繰り返しているように私に思わせます。

0 投票する
3 に答える
810 参照

java - Guice での JSR-330 サポート

Guiceの SVN バージョンは、JSR-330 注釈をサポートしています(「JSR-330 統合 - これは Guice SVN でのみ利用可能な実験的で未リリースの機能を文書化しています」)。Google は次のようにアドバイスしています。Guice 2 がリリースされてから 1 年が経ちましたが、近い将来 JSR-330 がサポートされるようになるのではないかと考えています。誰か知っていますか?

0 投票する
1 に答える
195 参照

java - @Inject で null 引数に対して失敗する

JSR-330@Injectアノテーションを使用して Spring 3 Java Config の使用を開始しました。Spring とは異なり、パラメーターが null@Autowireの場合、Spring は起動時に失敗しません。@InjectJava Config内でこれを行う方法はありますか?

編集:明確にするために、これをデフォルトの動作にしたいので、すべてのフィールドに @Required を付ける必要はありません。

0 投票する
5 に答える
7423 参照

java - Weldで文字列定数を簡単に注入する方法は?

実行中のプログラムにマップの形式で外部構成を提供する状況があります。JSR-330 Dependency Injection は、マップを渡したり、JNDI を使用して取得したりする代わりに、コード内でその構成マップを使用するためのよりクリーンな方法を提供することを発見しました。

JSR-330 実装がこのフィールドに自動的に入力できるようにします。

Guiceを使用すると、値を設定できます

Weld でも同じことができるようにしたい (「server.username」を「foobar」などにバインドする) メカニズムはbeans.xml である可能性が最も高いことを理解していますが、単純な「このマップを Weld にフィードする」ことをお勧めします。 、してください」コードの代替。これを行うにはどうすればよいでしょうか。


@ProviderEDIT 2013-10-16: 実行時ではなくコンパイル時に動作する Dagger を調べたところ、通常、プログラムごとに 10 ~ 20 個の Dagger があるため、各構成文字列のメソッドを使用して、構成を検索することができることがわかりました。地図。これにより、メソッド固有の動作 (デフォルト値を含む)、javadoc を提供する機能、およびこれらすべてのメソッドを同じクラスに配置する機能が可能になります。また、すぐに使用できる Weld でもうまく機能します。ブログエントリでより完全な説明を書くことを検討しています。

0 投票する
1 に答える
685 参照

java - JSR-330インジェクションを直接サポートする組み込みWebコンテナ?

すべてのモジュラー コードで JSR-330 依存性注入を使用する必要があると判断し、いくつかのプロジェクトで実際の注入を行うために Guice 2.1SVN または Java EE 6 CDI を使用しており、非常にうまく機能しています。

解決策を見つける必要がある残りのシナリオが 1 つあります。つまり、Java EE 6 のように JSR-330 インジェクションを使用して WAR ファイルをデプロイできるようにしたい Java 5 で実行されている埋め込み Web コンテナーがある場合です。

GlassFish と Resin 4 がこれを実行できることを発見しましたが、Java EE 6 Web プロファイルは、それぞれ独自の組み込みサーバーで非常に小さなアプリケーションを実行するため、この目的には大きすぎます。

したがって、問題は、完全な Weld または Guice サーブレットを WAR に含めなくても既存のコードを (Java 5 用にコンパイルして) ​​デプロイできるように、簡単に利用できるネイティブ JSR-330 サポートを備えた Web コンテナーが存在するかどうかです。Web コンテナーを呼び出すメイン コードに完全な構成スイートを配置することはまったく問題ありませんが、実際の Web アプリケーションの展開に guice/Spring/weld jar は必要ありません。

0 投票する
1 に答える
9195 参照

java - Spring で JSR-330 @Provider と @Inject @Named("foo") String **programmatically** を構成するにはどうすればよいですか?

私たちは、将来のモジュール化の取り組みのために JSR-330 アノテーションを使用した依存性注入を使用することを決定し、Guice 2 SVN に基づく最初の成果物に非常に満足しています。

ここで、必要な構造がプログラムで構成されたときにSpringでも機能することを単体テストを通じて確認し、文書化する必要があります(Guiceと同じリファクタリングサポートが必要なため、XMLファイルは必要ありません)。私は and に問題が@Providerあります@Inject @Named("foo") Stringが、次のもので簡単に@Inject作業できました:

ここで、LIBL_Object は に注入される基本クラスですが、CORE_Provider は Spring 内で期待どおりに登録されません。

CORE_Provider の実装は

そして私はそれを注入したい

また、@Named タグを使用すると、構成値を非常に明確に渡すことができることもわかりました。このコードは次のようになります。

次に、この文字列を Guice に登録します。

したがって、2つの質問は次のとおりです。

  • @ProviderクラスをプログラムでSpring 3に登録するにはどうすればよいですか?
  • @Named が適切に選択できるように、文字列定数を Spring 3 に登録するにはどうすればよいですか?
0 投票する
3 に答える
8496 参照

java - Weld/CDI を使用した最適なデバッグ トリックは何ですか?

Java EE 6 の優れた点の 1 つは、新しい依存性注入フレームワーク (CDI と Weld 参照実装) です。凍結されたコア jar を追加し、コア jar の機能を置き換える新しいモジュールを提供する追加の jar を追加できます。

私は現在、Weld で上記の作業を行う過程にあり、率直に言って、カバーの背後で行われている魔法が多すぎます。機能するか機能しないかのどちらかであり、デフォルトでは何が起こっているかについてあまり役に立たないため、何が間違っているかを調査して修正できます.

次のようなことを簡単に有効にできるスイッチがあると思います。

  • どのクラスパス エントリがスキャンされ、どこでスキャンされますか? 結果はどうでしたか?
  • どのクラスのインジェクションにどの Bean を使用できますか?
  • 特定の Bean が後で考慮されない原因は何ですか? 特定の瓶?

つまり、意思決定プロセスをもっと詳しく見る必要があります。なんらかの理由で、これは Guice では必要とされていません。おそらく、マジックがはるかに少なく、エラー メッセージが非常に優れているためです。

溶接アプリケーションをデバッグするために何をしますか? また、それはどの程度役立ちますか?

0 投票する
1 に答える
2673 参照

java - spring-contextはBeanインスタンスでJSR-330Qualifierをサポートしていますか?

Springには独自のアノテーションがあります。これは、JSR-330の具体的な修飾子であるアノテーションとQualifier同等だと思います。javax.inject.Named

では、SpringのどのバージョンがQualifierをサポートしているのでしょうか。

これが私の使用例ですが、残念ながら、spring-context3.0.5では機能しません。

0 投票する
1 に答える
848 参照

java - SpringDIの修飾子に関する質問

通常、修飾されたコンポーネントは、同じ修飾子を持つ注釈付きフィールドに注入されます。

私が欲しいのは、特定の修飾子を持つコンポーネントが定義されていない場合、デフォルトのコンポーネントを指定したいので、redApple上記の例ではのインスタンスが注入されますApple1

出来ますか?または、Spring DIに特定の修飾子マッチング戦略を実装できますか?

** 編集 **

サブクラスが機能することはわかっていますが、これは質問を説明するための例であるため、ここではサブクラスは適用されません。