首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Bean创建帮助

Spring Bean创建帮助
EN

Stack Overflow用户
提问于 2011-09-16 14:03:39
回答 2查看 159关注 0票数 0

我们的要求是我们有一个接口,并且有很多实现。现在,在请求输入的基础上,我需要选择实现,例如,假设请求对象中有一个clientID参数,并且在clientID的基础上,我需要选择实现类。

代码语言:javascript
复制
<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表达式中,但到目前为止,我只能找到以下内容:

代码语言:javascript
复制
<property name="someInterface" ref="#{clientID =='101'?clientOneImpl:clientTwoImpl}"/>

但是使用这个条件语句,我最多只能处理两个客户端。有没有办法处理两个以上的客户端?有没有办法做到这一点?任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2011-09-16 14:19:19

我知道您正在构建一个基于Spring的应用程序,但这是一个典型的工厂模式。因此,您可以使用它来实现这一点,即返回与给定clientID (来自您的工厂)相对应的实现。

票数 0
EN

Stack Overflow用户

发布于 2011-09-16 17:15:37

在我的脑海中有两个解决方案。

  1. One使用java配置来定义bean,然后切换大小写返回相应的bean。
  2. 使用bean的命名参数来查找bean。例如,在将属性映射到bean名称的切换中,然后使用上下文按名称查找类。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7440762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档