【问题标题】:Getting a bean with all its dependencies using Spring ServiceFactoryBean使用 Spring ServiceFactoryBean 获取具有所有依赖项的 bean
【发布时间】:2019-04-25 13:53:55
【问题描述】:

我有自定义工厂类来使用 Spring 的服务工厂 bean 获取 bean。但是,我想从这个工厂 bean 中获取的 bean 具有嵌套的 bean 依赖项。我的问题是如何从这个工厂获取一个满足所有嵌套依赖项的 bean?

Spring Config : 

<bean id="beanFactory" 
    class="org.springframework.beans.factory.config.ServiceLocatorFactoryBean">
  <property name="serviceLocatorInterface" value="com.example.MyBeanFactory">
</bean>


Public class MyBean
    {
       JobBuilder builder;
    }




Public interface MyBeanFactory
    {
      MyBean getMyBean();
    }

现在,当我执行 MyBeanFactory.getMyBean()... 时,我希望在其中包含包含 JobBuilde 实例的 MyBean 实例。

【问题讨论】:

    标签: spring factory


    【解决方案1】:

    您可以将实现类视为 Spring 应用程序中的任何其他类 - 只需自动装配您需要的任何依赖项。我的一个建议是为 bean 类定义一个接口。示例:

    public interface MyBean {
    
      void doStuff();
    }
    

    提供一个实现:

    @Component("defaultMyBean")
    public class DefaultMyBean {
    
      @Autowire
      JobBuilder jobBuilder;
    
      public void doStuff() {
       // do stuff with jobBuilder
      }
    }
    

    然后是工厂界面:

    public interface MyBeanFactory {
    
      MyBean getMyBean();
    }
    

    配置保持不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-29
      相关资源
      最近更新 更多