加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

通过依赖注入在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
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读