后端经典面试题合集, Spring 的两大核心概念是什么?简单讲一下你对它们的理解
后端经典面试题合集, Spring 的两大核心概念是什么?简单讲一下你对它们的理解
QA
Step 1
Q:: Spring 的两大核心概念是什么?简单讲一下你对它们的理解。
A:: Spring 框架的两大核心概念是控制反转(Inversion of Control, IoC)和面向切面编程(Aspect-Oriented Programming,
AOP)。
1.
控制反转(IoC):在传统开发中,应用程序代码通常负责创建和管理对象的依赖关系,而在 Spring 中,这个责任被反转到了 IoC 容器。IoC 容器负责创建对象、管理它们的生命周期以及注入它们的依赖项。这种方式使得代码更加松耦合,便于测试和维护。
2.
面向切面编程(AOP):AOP 是一种编程范式,它允许开发者将横切关注点(如日志记录、事务管理、安全性等)从业务逻辑中分离出来。Spring AOP 通过声明式方式将这些关注点与业务逻辑代码结合,从而实现代码的重用和减少重复代码的效果。
Step 2
Q:: 请解释 Spring 中的依赖注入(Dependency Injection,
DI)机制。
A:: 依赖注入是控制反转(IoC)的实现方式之一。它允许对象不必通过自身的代码来查找或创建其依赖项,而是通过外部注入的方式来获得这些依赖。Spring 提供了多种注入方式,包括构造函数注入、Setter 方法注入和基于注解的注入(如 @
Autowired)。这种设计使得类之间的耦合度降低,提高了代码的可测试性和可维护性。
Step 3
Q:: Spring Bean 的生命周期是什么?如何管理 Bean 的生命周期?
A:: Spring Bean 的生命周期包括:实例化(Instantiation)、属性注入(Dependency Injection)、初始化(Initialization)和销毁(Destruction)几个阶段。Spring 通过配置文件或注解(如 @Bean、@
Component 等)来管理 Bean 的生命周期。
-
实例化:由 Spring 容器创建 Bean 实例。
-
属性注入:Spring 容器通过构造函数或 Setter 方法注入 Bean 的依赖。
- 初始化:Bean 实例化和依赖注入完成后,Spring 调用初始化方法(如 @
PostConstruct 注解标注的方法)。
- 销毁:当 Bean 不再需要时,Spring 调用销毁方法(如 @
PreDestroy 注解标注的方法)释放资源。
Spring 还允许开发者通过实现 InitializingBean 和 DisposableBean 接口来自定义 Bean 的初始化和销毁逻辑。