出2个spring ioc 资深面试题
时间: 2024-05-21 18:14:27 浏览: 72
spring 面试题
1. Spring IoC 中的依赖注入的方式有哪些?它们有什么区别?
答:Spring IoC 中依赖注入的方式主要包括构造函数注入、Setter 方法注入和字段注入(或属性注入)。它们的区别在于注入的时机和方式不同。
- 构造函数注入:在创建对象时,在对象实例化时传递参数,将依赖的对象作为构造函数的参数传递给目标对象。
- Setter 方法注入:在创建对象后,通过调用目标对象的 Setter 方法进行注入。
- 字段注入:在创建对象后,直接通过反射将依赖的对象注入到目标对象的字段或属性中。
2. Spring IoC 容器的生命周期是怎样的?如何自定义 Spring IoC 容器的生命周期?
答:Spring IoC 容器的生命周期主要涉及容器的创建、初始化、使用和销毁四个阶段。具体如下:
- 创建:在容器启动时,根据配置文件或者注解等方式来创建 IoC 容器实例。
- 初始化:在容器创建完成后,容器会对配置文件中的 Bean 进行实例化、依赖注入、AOP 等初始化操作。
- 使用:初始化后的 Bean 可以被容器使用,也可以被其他 Bean 所引用。
- 销毁:当容器关闭时,容器会销毁所有的 Bean,释放资源。
如果需要自定义 Spring IoC 容器的生命周期,可以实现 BeanFactoryPostProcessor 和 BeanPostProcessor 接口。其中,BeanFactoryPostProcessor 接口可以在 IoC 容器创建之后对容器进行修改,而 BeanPostProcessor 接口可以在 Bean 实例化、依赖注入和 AOP 等操作之后对 Bean 进行修改。通过实现这两个接口,可以自定义容器的初始化和销毁操作。
阅读全文