class字段同时具有@Autowired注释和右手赋值

时间:2014-08-28 16:19:50

标签: java spring dependency-injection spring-boot

在Spring Boot的源代码中,我对同时具有@Autowired注释和右手赋值的类字段感到困惑。

@Autowired
private ResourceProperties resourceProperties = new ResourceProperties();

位于https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration.java

换句话说,此字段配置为字段注入,但也使用new运算符直接分配。实际分配给这个变量的是什么?

1 个答案:

答案 0 :(得分:8)

创建实例时,初始化表达式的值将分配给该字段。当AutowiredBeanPostProcessor处理字段时,它会为其分配一个新值。

如果您希望在Spring的上下文之外运行相同的类,那么您将编写这样的代码。