Spring中bean类的生命周期|面试必问如何回答

简介: Spring中bean类的生命周期|面试必问如何回答

面试过程中,常常会被问到,bean的生命周期,那该如何回答呢?

spring的生命周期大致如下

1.需找所有的bean根据bean定义的信息来实例化bean,默认bean都是单例


2、使用依赖注入,spring按bean定义信息配置bean的所有属性


3、若bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递bean的ID


4、若bean实现了BeanFactoryAware接口,工厂调用setBeanFactory() 方法传入工厂自身。


5、若bean实现了ApplicationContextAware()接口,setApplicationContext()方法会被调用


6、若bean实现了InitializingBean,则afterPropertiesSet被调用


7、若bean指定了init-method="init"方法,它将被调用。


8、若BeanPostProcessor和bean关联,则它们的postProcessBeforeInitialization()方法被调用


9、若有BeanPostProcessor和bean关联,则它们的postProcessAfterInitialization()方法被调用


注意:通过已上操作,此时的Bean就可以被应用的系统使用,并将保留在BeanFactory工厂中直到不再需要为止.但我们也可以通过10或者11进行销毁


10、若bean实现了DisposableBean接口,distroy()方法被调用


11、如果指定了destroy-method="close"定制的销毁方法,就调用这个方法


面试如何回答

那肯定会有很多人,这么多记不住,面试该如何应当呢?


面试官一般问到bean的生命周期,你可以这么说


spring在创建bean的时候,首先会根据bean的定义以及一些信息配置来实例化bean,然后bean若实现了前置处理器或者后置处理器的接口后,就会实现他们对应的方法,比如若bean实现了ApplicationContextAware()接口,setApplicationContext()方法会被调用,另外的具体的实现方法记不太清除了,反正就是一些实现了就执行,实现了就执行这样的顺序一次判断,最后就是bean如果实现了销毁的接口,就会将bean销毁,如果没有实现那就一直保留。


回答这个问题的时候一定要自信,让面试官认为你是知道的,只是这些接口没必要一个个去记下来,面试官都不清楚有这么多接口的具体的那个方法的名字要去实现的,但是你就自信的回答就可以了,千万不要支支吾吾,一旦面试官问你能不能举几个前置或者后置说一下,你就说记不到了,哪有程序员去记这些东西的


相关文章
|
2月前
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
213 26
|
3月前
|
前端开发 安全 Java
2025春招,Spring 面试题汇总
本文详细整理了2025年春招必备的Spring面试题,分为基础和高级两大部分,帮助求职者全面掌握Spring相关知识点,结合实际项目经验,提升面试成功率。内容涉及Spring框架、AOP、事务管理、数据库集成、Spring Boot、Spring Security、微服务架构等,助力你在春招中脱颖而出。
470 0
|
4月前
|
XML 安全 Java
|
5月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
162 2
|
11天前
|
前端开发 IDE Java
Spring MVC 中因导入错误的 Model 类报错问题解析
在 Spring MVC 或 Spring Boot 开发中,若导入错误的 `Model` 类(如 `ch.qos.logback.core.model.Model`),会导致无法解析 `addAttribute` 方法的错误。正确类应为 `org.springframework.ui.Model`。此问题通常因 IDE 自动导入错误类引起。解决方法包括:删除错误导入、添加正确包路径、验证依赖及清理缓存。确保代码中正确使用 Spring 提供的 `Model` 接口以实现前后端数据传递。
35 0
|
4月前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
220 73
|
4月前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
111 12
|
4月前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
104 12
|
4月前
|
Java Spring
【Spring配置相关】启动类为Current File,如何更改
问题场景:当我们切换类的界面的时候,重新启动的按钮是灰色的,不能使用,并且只有一个Current File 项目,下面介绍两种方法来解决这个问题。
106 10
|
4月前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
108 6

热门文章

最新文章