2014-08-28 72 views
2

在Spring Boot的源代碼中,我被類別字段混淆,該字段既有@Autowired註釋也有右手賦值。class字段同時擁有@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運營商分配。實際分配給這個變量的是什麼?

回答

8

創建實例時,初始化表達式的值將被分配給該字段。當AutowiredBeanPostProcessor處理該字段時,它將爲其分配一個新值。

如果您希望在Spring上下文之外運行相同的類,那麼您可以編寫這樣的代碼。

+0

偉大的回答先生 – 2014-08-28 16:25:50