我们的要求是我们有一个接口,并且有很多实现。现在,在请求输入的基础上,我需要选择实现,例如,假设请求对象中有一个clientID参数,并且在clientID的基础上,我需要选择实现类。
<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}"/>但是使用这个条件语句,我最多只能处理两个客户端。有没有办法处理两个以上的客户端?有没有办法做到这一点?任何帮助都将不胜感激。
发布于 2011-09-16 14:19:19
我知道您正在构建一个基于Spring的应用程序,但这是一个典型的工厂模式。因此,您可以使用它来实现这一点,即返回与给定clientID (来自您的工厂)相对应的实现。
发布于 2011-09-16 17:15:37
在我的脑海中有两个解决方案。
https://stackoverflow.com/questions/7440762
复制相似问题