@平凡之路_26e2 ignoreDependencyInterface并不影响构造器注入,也就是说无论有没有ignoreDependencyInterface,最后注入的结果都取决于自动注入和后置处理器谁是后发生的。
从实验的结果上看 ignoreDependencyInterface 只影响了 setter 方法,意味着自动注入会忽略例如 ApplicationContextAware 的 setter 方法,所以 applicationContext 的值只有由后置处理器设置。
但是就算没有ignoreDependencyInterface(ApplicationContextAware.class),后置处理器依然是后与自动注入发生的,意味着最后的值依旧是后置处理器设置的值,除非在 setter 方法中出现类似:
if (this.ignoreUser == null) {
this.ignoreUser = ignoreUser;
}
的代码,会导致最后设置的值是自动注入的值。
打开BeanFactory ignoreDependencyInterface方法的正确姿势在阅读Spring容器扩展部分源码的过程中,我了解到BeanFactory接口中有个方法叫ignoreDependencyInterface。从官方文档的“字面”来看,其作用...