Получение bean-компонента со всеми его зависимостями с помощью Spring ServiceFactoryBean - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть пользовательский класс фабрики, чтобы получить bean-компонент, использующий фабричный bean-компонент сервиса Spring. Однако у компонента, который я хочу получить от этого фабричного компонента, есть вложенные зависимости компонента. У меня вопрос, как мне получить бин от этой фабрики со всеми встреченными вложенными зависимостями?

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() ... я хочу иметь экземпляр MyBean, который включает в себя JobBuilde экземпляр внутри него.

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете обращаться с классом реализации как с любым другим классом в приложении Spring - просто автоматически связывайте все необходимые вам зависимости. Одно из предложений, которое у меня есть, - определить интерфейс для класса бина. Пример:

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();
}

Конфигурация остается неизменной.

...