1

その上で、他のチームがアプリケーションを開発するフレームワークを作成しています。

その一環として依存性注入を提供したいと考えています。私は開発者に JSR 330 アノテーションを使用させており、私のフレームワークは DI で動作します。

それでも私は次の問題を抱えています

開発者は、 Guiceを使用する場合はモジュールを、 WELDを使用する場合はbeans.xmlを作成する必要があります。これにより、特定の DI が開発者アプリ コードと結合されます。アプリケーション コードに一切触れずに、フレームワーク内の基になる依存性注入を切り替えたい。

とにかくそれを行うことはありますか?

4

2 に答える 2

4

JSR330 の機能に厳密に固執する場合は、言及した 3 つの実装 DI フレームワークすべてで使用できるフレームワーク jar を提供できます。CDI がモジュールをスキャンできるようにするには、bean.xml を提供する必要がありますが、そのコードを侵襲的とは言いません。

モジュール、ファクトリ、プロデューサ メソッド、AutoConfigurations など、JSR330 以外のものを提供する必要がある場合は、カスタム拡張モジュールを提供することができます。その上で、guice などのヘルパーとモジュールを提供します。

于 2015-07-02T08:16:41.130 に答える
0

JSR-330 には、システムを本当に切り替え可能にするためにシステムがどのように起動するかについての十分な情報がないと思います。たとえば、Guice を使用している場合は、インジェクターを作成する必要があります。Spring を使用している場合は、その JavaConfig を使用する必要があります。HK2 を使用している場合は、住民ジェネレーターを使用するか、モジュールを使用する必要があります。CDI を使用している場合は、beans.xml だけが必要ですが (後の CDI では必要ありません)、Producers などの CDI の他の機能が必要であることがほぼ間違いなくわかります。

これらの理由から、JSR-330 は最小限すぎて移植できないと思います

于 2015-07-02T16:00:50.853 に答える