0

我想知道如何将 Guice 的@Assisted注释转换为 Java 中的 Spring Boot。例如我有这个代码:

@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));

我知道如何转换@Injectand @Named,但我一直在做一些研究,@Assisted但找不到任何东西?可能吗?如果是这样,我会怎么做?

4

1 回答 1

0

Spring 没有相当于 Guice FactoryModuleBuilder。最接近的等价物是 Spring @Configuration 类,它提供了一个工厂 bean,该 bean 实现了一个工厂接口,其方法接受来自应用程序的任意参数。详情请参考以下链接: Guice 中的 FactoryModuleBuilder、@AssistedInject 和 @Assisted 等价于 Spring 是什么?

于 2019-02-01T17:09:13.950 回答