CDIでは、これを行うことができます:
// Qualifier annotation
@Qualifier
@inteface Specific{}
interface A {}
class DefaultImpl implements A {}
@Specific
class SpecificImpl implements A {}
そして、クラスで:
@Inject
A default;
@Inject
@Specific
A specific;
これは、@Default
修飾子を指定せずに注入ポイントに自動的に割り当てられる修飾子のために機能します。
しかし、私はSpringで作業していて、それを実行できませんでした.
Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException
問題は、「デフォルト」のインジェクション (修飾子なし) が、変更できない多くのコードで既に使用されており、別の可能な実装をA
ユーザーに提供する必要があることです。
新しい実装を Bean 名で注入できることは承知していますが、それは避けたいと思います。
春にそれを達成するのに役立つものはありますか?