Что такое версия @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?