Spring Boot的@Assisted版本是什么

时间:2019-02-01 16:25:48

标签: java spring guice assisted-inject

我想知道如何在Java中将Guice的@Assisted批注转换为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));

我知道如何转换@Inject@Named,但是我一直在对@Assisted进行一些研究,但找不到任何东西吗?可能吗?如果可以,我该怎么办?

1 个答案:

答案 0 :(得分:0)

Spring不具有与Guice FactoryModuleBuilder相同的功能。最接近的等效项是Spring @Configuration类,它提供一个实现工厂接口的工厂bean,该工厂接口的方法接受应用程序中的任意参数。 请参考以下链接了解详细信息: What is the Spring equivalent to FactoryModuleBuilder, @AssistedInject, and @Assisted in Guice?