私たちにはインターフェイスがあり、その実装が多数あります。さて、要求入力に基づいて、実装を選択する必要があります。たとえば、request ObjectにclientIDパラメータがあり、clientIDに基づいて、実装クラスを選択する必要があります。Spring Bean Creationヘルプ
<bean id = "clientService" class =" com.ecourt.CLientServiceImpl">
<property name="someInterface" ref = "this needs to be changed for every client base on the request Input"/>
</bean>
<!-- Below mentioned Beans are Impl of "someInterface" property of above define bean --!>
<bean id ="clientOneImpl" class = "com.ecourt.clienOneImpl"/>
<bean id ="clientTwoImpl" class = "com.ecourt.clienTwoImpl"/>
可能な解決策は、SPEL式にすることができますが、今まで、私はこれだけを見つけるために管理:
<property name="someInterface" ref="#{clientID =='101'?clientOneImpl:clientTwoImpl}"/>
をしかし、この条件文で、私は最大限の2つのクライアントを扱うことができます。 2人以上のクライアントを処理する方法はありますか?これを行う方法はありますか?どんな助けも高く評価されます。
実装ごとにid属性としてclientIDを持つBeanを定義できます。指定されたclientIDに基づいて実際の実装を返すようにclientIDを渡してgetBean()を呼び出します。 – Pokuri