whereeaglesdare
@whereeaglesdare

Как реализовать фабричный метод в Spring?

Добрый день
Подскажите, пожалуйста, как реализовать фабричный метод в Spring boot.

На примере ниже показан метод, который создает одну из реализаций интерфейса State

public State getState(Long chatId) throws NoSuchMethodException,
            IllegalAccessException, InvocationTargetException, InstantiationException {
        ChatState chatState = getChatState(chatId);
        DescriptorDto dto = getDescriptorByChat(chatState);
        State state = this.getStateClass(dto).getDeclaredConstructor(String.class, String.class,
                String.class, String.class, List.class)
                .newInstance(dto.getState(), dto.getNextState(),
                        dto.getText(), dto.getErrorState(), null);
        return state;
    }


Проблема в том, что некоторые реализации этого интерфейса требуют обращения к другим компонентам спринга.
Так как тут простой конструктор, то у меня нет возможности к ним обратиться(или в самом конструкторе всем классам передавать какой-нибудь сервис по умолчанию)

Подскажите. что делать?
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
14 авг. 2020, в 02:27
1000 руб./за проект
14 авг. 2020, в 01:51
600 руб./за проект
13 авг. 2020, в 23:56
200000 руб./за проект