通过依赖注入在Java中的继承(延迟绑定)

前端之家收集整理的这篇文章主要介绍了通过依赖注入在Java中的继承(延迟绑定)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用 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
  }
原文链接:https://www.f2er.com/javaschema/281869.html

猜你在找的设计模式相关文章