Что такое версия @Assisted для Spring boot?

Мне интересно, как конвертировать Guice's @Assisted аннотация в весеннюю загрузку в Java. Например, у меня есть этот код:

@Inject
public Merge(@Named(Conf.MkvFields.CHAININPUT_DELAY) String chainInputDelay,
    @Named(Conf.MkvFields.REAL_TIME_PROCESSING),
    @Assisted MergeDefinition mergeDefinition) {

Например, у вас есть:

public interface MergeFactory { 
    public Merge createMerge(@Assisted MergeDefinition mergeDefinition);    
}

И тогда у вас будет:

        install(new FactoryModuleBuilder().build(MergeFactory.class));

А также:

mergeFactory.createMerge(mergeDefinition));

Я знаю как конвертировать @Inject а также @Named, но я проводил некоторые исследования @Assisted но ничего не могу найти? Является ли это возможным? Если так, как бы я это сделал?

1 ответ

Spring не имеет эквивалента Guice FactoryModuleBuilder. Ближайшим эквивалентом будет класс Spring @Configuration, который предоставляет фабричный компонент, реализующий фабричный интерфейс, методы которого принимают произвольные аргументы из приложения. Пожалуйста, обратитесь к следующей ссылке для получения подробной информации: Что такое Spring эквивалентно FactoryModuleBuilder, @AssistedInject и @Assisted в Guice?

Другие вопросы по тегам