在应用程序的初始化过程中,这些事件将以什么顺序发生? 请选择最佳答案(选) 1. Setter 依赖注入 2.Bean 构造函数 3.调用 BeanFactoryPostProcessors 4.调用 BeanPostProcessors
时间: 2024-03-01 18:30:17 浏览: 71
在Spring容器启动时,Bean的初始化顺序如下:
1. Bean的实例化(调用构造函数)。
2. 设置Bean的属性值(依赖注入)。
3. 如果Bean实现了BeanNameAware接口,则调用Bean的setBeanName()方法,传递Bean的名称。
4. 如果Bean实现了BeanFactoryAware接口,则调用Bean的setBeanFactory()方法,传递Bean所在的BeanFactory。
5. 如果Bean实现了ApplicationContextAware接口,则调用Bean的setApplicationContext()方法,传递ApplicationContext对象。
6. 调用BeanPostProcessor的postProcessBeforeInitialization()方法。
7. 如果Bean实现了InitializingBean接口,则调用Bean的afterPropertiesSet()方法。
8. 如果Bean在配置文件中使用init-method属性指定了初始化方法,则调用该方法。
9. 调用BeanPostProcessor的postProcessAfterInitialization()方法。
10. Bean可以使用了。
因此,正确的顺序是:
2. Bean 构造函数 -> 1. Setter 依赖注入 -> 4. 调用 BeanPostProcessors -> 3. 调用 BeanFactoryPostProcessors
相关问题
1.在应用程序的初始化过程中,这些事件将以什么顺序发生?请选择最佳答案。(选择—项)1.Setter依赖注入 2.Bean构造函数 3.调用BeanFactoryPostProcessors4.调用BeanPostProcessors
在应用程序的初始化过程中,事件发生的顺序应该是:
1. Bean构造函数
2. Setter依赖注入
3. 调用BeanFactoryPostProcessors
4. 调用BeanPostProcessors
答案为:2,1,3,4。在 Spring 容器初始化时,首先会使用构造函数创建 Bean 实例,然后对 Bean 进行属性注入,接着调用 BeanFactoryPostProcessors 后处理器对 Bean 进行修改,最后调用 BeanPostProcessors 后处理器对 Bean 进行修改。
58.在应用程序的初始化过程中,这些事件将以什么顺序发生? 请选择最佳答案(选择一项) 1.Setter依赖注入 2.Bean构造函数 3.调用BeanFactoryPostProcessors 4.Bean准备好随时可用 A.2,1,3,4 O B.2,1,4,3 C.3, 2,1,4 O D.3, 1, 2,4
答案是C. 3, 2, 1, 4。在Spring容器启动时,以下是Bean的初始化顺序:
1. BeanFactoryPostProcessors的实现类将会被调用,这个过程发生在Bean对象实例化之前。
2. Bean对象的实例化,这个过程包括Bean对象的构造函数的调用。
3. Bean对象的依赖注入,这个过程包括Setter注入,也就是调用Bean的Setter方法进行属性注入。
4. Bean准备好随时可用,这个过程包括调用Bean的初始化方法和应用Bean的后置处理器。此时,Bean已经可以使用了。
阅读全文