通过依赖注入在Java中的继承(延迟绑定)
发布时间:2020-12-14 00:48:22 所属栏目:百科 来源:网络整理
导读:我使用 Spring DI来连接我的组件,我遇到了这个问题. 我有一个BaseService类有多个实现.并且它上面的层有一个构建器,它调用该服务来获取数据以填充POJO.服务实现我需要调用(ServiceA,ServiceB)根据需要构建的POJO的类型进行更改. 在这种情况下,如何自动连接服
我使用
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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |