Spring Data REST的RepositoryRestMvcConfiguration类具有方法enumTranslator()

@Bean
public EnumTranslator enumTranslator() {
  return new EnumTranslator(resourceDescriptionMessageSourceAccessor());
}


(我期望)注册了一个“ enumTranslator” Bean。

但是,当我尝试在组件中使用它时,它不会被注入,并且总是null

@Component
public class MyComponent {

    private final EnumTranslator enumTranslator;

    public MyComponent(EnumTranslator enumTranslator) {
        this.enumTranslator = enumTranslator;
    }

    public void someMethod() {
        // enumTranslator -> null
    }
}


有人可以解释为什么会发生这种情况,以及如何正确注入这种豆吗?

更新

我想通了-我试图实现一个不受Spring管理的类(Spring转换器))

谢谢所有试图帮助我的人!

最佳答案

看来RepositoryRestMvcConfiguration bean尚未加载到Spring容器中。
例如,尝试使用@Import(RepositoryRestMvcConfiguration.class)Configuration类导入它。

根据documentation


  2.4配置Spring Data REST
  
  ...
  
  您可以将此类导入到现有配置中
  使用@Import批注,或者您可以将其子类化并覆盖任何
  configureXXX方法可将您自己的配置添加到
  Spring Data REST。

09-27 11:38