Spring 面试题, Spring 一共有几种注入方式?
Spring 面试题, Spring 一共有几种注入方式?
QA
Step 1
Q:: Spring 一共有几种注入方式?
A:: Spring 提供了三种主要的依赖注入方式:构造函数注入、Setter 方法注入和字段注入。
1.
构造函数注入:通过构造函数参数传递依赖项,适用于必须依赖的场景,可以确保依赖项在对象创建时就被完全初始化。
2.
Setter 方法注入:通过公开的 setter 方法设置依赖项,适合可选依赖项,或者需要在对象创建后动态改变依赖项的场景。
3. 字段注入:通过注解(如 @
Autowired)直接注入依赖项到字段中,最为简单,但不利于单元测试和解耦。
Step 2
Q:: Spring 中的 @
Autowired 注解是什么?如何使用?
A:: @Autowired 是 Spring 的自动装配注解,用于自动注入依赖项。可以用于构造函数、setter 方法或字段上。它通过类型查找来匹配依赖项,可以结合 @
Qualifier 注解使用来精确指定注入的 Bean。
Step 3
Q:: 什么是 Spring 的 IOC 容器?
A:: Spring 的 IOC 容器(Inversion of Control 容器)是负责管理应用程序组件生命周期和依赖关系的核心。它通过配置文件或注解自动装配 Bean 并进行依赖注入,解耦了对象的创建与使用。常见的 IOC 容器实现包括 ApplicationContext 和 BeanFactory。
Step 4
Q:: Spring 中的 Bean 生命周期包括哪些阶段?
A:: Spring 中的 Bean 生命周期包括以下几个阶段:
1.
实例化:通过反射机制创建 Bean 实例。
2.
属性赋值:Spring 将依赖项注入到 Bean 的属性中。
3. 初始化:如果 Bean 实现了 InitializingBean 接口,Spring 会调用其 afterPropertiesSet() 方法;或者通过 <bean> 元素的 init-
method 属性指定初始化方法。
4.
使用:Bean 被应用程序逻辑使用。
5. 销毁:如果 Bean 实现了 DisposableBean 接口,Spring 会调用其 destroy() 方法;或者通过 <bean> 元素的 destroy-
method 属性指定销毁方法。