@平凡之路_26e2 ignoreDependencyInterface并不影響構造器注入,也就是說無論有沒有ignoreDependencyInterface,最后注入的結果都取決于自動注入和后置處理器誰是后發生的。
從實驗的結果上看 ignoreDependencyInterface 只影響了 setter 方法,意味著自動注入會忽略例如 ApplicationContextAware 的 setter 方法,所以 applicationContext 的值只有由后置處理器設置。
但是就算沒有ignoreDependencyInterface(ApplicationContextAware.class),后置處理器依然是后與自動注入發生的,意味著最后的值依舊是后置處理器設置的值,除非在 setter 方法中出現類似:
if (this.ignoreUser == null) {
this.ignoreUser = ignoreUser;
}
的代碼,會導致最后設置的值是自動注入的值。
打開BeanFactory ignoreDependencyInterface方法的正確姿勢在閱讀Spring容器擴展部分源碼的過程中,我了解到BeanFactory接口中有個方法叫ignoreDependencyInterface。從官方文檔的“字面”來看,其作用...