我使用
Spring DI来连接我的组件,我遇到了这个问题.
我有一个BaseService类有多个实现.并且它上面的层有一个构建器,它调用该服务来获取数据以填充POJO.服务实现我需要调用(ServiceA,ServiceB)根据需要构建的POJO的类型进行更改.
在这种情况下,如何自动连接服务,因为需要后期绑定服务.如何解决这种情况? (在Spring DI中的例子真的有帮助)
我读了类似的问题,但找不到答案.我读到SOA模式,如服务主机,为确切的用例提供不同的解决方案.
请帮忙.
谢谢
你可以使用
ServiceLocatorFactoryBean.在你的情况下,你会做这样的事情:
public interface BaseServiceLocator { BaseService lookup(String qualifier); //use whatever qualifier type makes sense here } <bean id="serviceLocatorFactoryBean" class="org.springframework.beans.factory.config.ServiceLocatorFactoryBean"> <property name="serviceLocatorInterface" value="your.package.BaseServiceLocator" /> </bean>
那么你的建设者会看起来像这样:
public class Builder { @Autowired private BaseServiceLocator baseServiceLocator; @Override public YourReturnType businessMethod() { SomeData data = getData(); BaseService baseService = baseServiceLocator(data.getType()); //here I am assuming that getType() is a String //whatever }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。