【发布时间】:2018-04-26 10:58:57
【问题描述】:
RepositoryRestMvcConfiguration 类的 Spring Data REST 有方法 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
}
}
有人可以解释为什么会发生这种情况以及如何正确注入此类 bean 吗?
更新
我想通了 - 我试图实现一个不受 Spring 管理的类(Spring 转换器)))
感谢所有试图帮助我的人!
【问题讨论】:
-
您所描述的内容应该有效,因此您的描述中可能缺少某些内容。你确定是 Spring 实例化了
MyComponent吗? -
(在调试器中运行,在构造函数中下断点,查看堆栈看看是什么调用了
MyComponent(EnumTranslator)构造函数) -
谢谢@slim!我找到了原因 - 检查我的更新..)
标签: java spring spring-data-rest inject