我也尝试了这个,但是由于没有noargs构造函数(你现在可以用服务/控制器/组件做这个,所以为什么它不能在这里工作?)
@Configuration
class MyConfig {
@Autowired
MyConfig( final ObjectMapper mapper ) {
...
}
}
然而这有效
@Configuration // or @Service or some bean
class SomeClass ... {
@Autowired
private ObjectMapper objectMapper;
@PostConstruct
private void configureObjectMapper() {
objectMapper.disable( SerializationFeature.WRITE_DATES_AS_TIMESTAMPS );
}
}
为什么不像其他春季管理班一样工作@Configuration
?
答案 0 :(得分:4)
我完全不认识你的第一个例子,也不知道 的工作地点。
第二个例子,构造函数注入,并不特别适用于配置类,因为Spring在开始构建bean之前需要大量的魔力来分析和解决依赖图。配置类实际上是代理的,因此它们的@Bean
方法可以进行自我调用并仍然获得单例实例(或任何适当的范围)。因为配置类可以提供它自己所依赖的bean,所以Spring需要一个无参数的构造函数,以便它可以一次构建一个实例。
我首选的方法是在我的@Bean
方法上使用参数注入,这不需要特殊的注释。