Spring面试题, 说下 Spring Bean 的生命周期?
Spring面试题, 说下 Spring Bean 的生命周期?
QA
Step 1
Q:: 说下 Spring Bean 的生命周期?
A:: Spring Bean 的生命周期包括以下几个阶段:
1.
实例化(Instantiation):Spring 容器通过反射创建一个 Bean 的实例。
2.
属性赋值(Populate Properties):Spring 容器会根据配置文件或注解为 Bean 的属性进行赋值。
3. 初始化(Initialization):如果 Bean 实现了 InitializingBean 接口,Spring 会调用 afterPropertiesSet() 方法;或者配置了 init-
method 属性的方法,也会被调用。
4.
使用(Usage):Bean 被应用程序使用。
5. 销毁(Destruction):如果 Bean 实现了 DisposableBean 接口,Spring 会调用 destroy() 方法;或者配置了 destroy-
method 属性的方法,也会被调用。
在实际应用中,通过配置 BeanPostProcessor 可以在 Bean 初始化前后添加自定义逻辑。
Step 2
Q:: Spring 中 @
Autowired 注解的作用是什么?
A:: @
Autowired 注解用于自动装配 Bean,它可以自动注入匹配的类型或名称的 Bean。在 Spring 容器启动时,自动扫描并注入所需的依赖。可以用于字段、构造方法或 Setter 方法上。
Step 3
Q:: Spring 中 @Component、@Service、@Repository 和 @
Controller 有什么区别?
A:: @
Component 是一个通用的 Spring 组件注解,可以用于任何 Spring 管理的组件。
@
Service 是业务逻辑层的注解,通常用于标注服务层的类。
@
Repository 是数据访问层的注解,通常用于 DAO 层,具备捕捉数据库操作异常的功能。
@
Controller 是控制层的注解,通常用于标注处理用户请求的控制器类。