知识改变命运! java高频面试题-Spring中Bean的生命周期_猿份哥-lskyf博客社区

java高频面试题-Spring中Bean的生命周期

猿份哥 5月前 ⋅ 1140 阅读 ⋅ 52 个赞

Spring中Bean的生命周期有如下过程:

1.Bean容器找到配置文件中Spring Bean的定义。

2.Bean容器利用Java Reflection API创建一个Bean的实例。

3.如果涉及到一些属性,利用set()方法设置一些属性值。

4.如果Bean实现了BeanNameAware接口,调用setBeanName()方法,传入Bean的名字。

5.如果Bean实现了BeanClassLoaderAware接口,调用setBeanClassLoader()方法,传入ClassLoader对象实例。

6.如果Bean实现了BeanFactoryAware接口,调用setBeanFactory()方法,传入ClassLoader的对象实例。

7.与上面类似,如果实现了其他的*Aware接口,就调用相应的方法。

8.如果有和加载这个Bean的Spring容器相关的BeanPostProcessor对象,执行postProcessBeforeInialization()方法。

9.如果实现了InitializingBean接口,执行afterPropertiesSet()方法。

10.如果Bean在配置文件中的定义包含init-method属性,执行指定的方法。

11.如果有加载这个Bean的Spring容器相关的BeanPostProcessor对象,执行postProcessAfterInitializaion()方法。

12.当要销毁Bean的时候,如果Bean实现了DisposableBen接口,执行destroy()方法。

13.当Bean要销毁的时候,如果Bean在配置文件中的定义包含destroy-method属性执行指定的方法。


全部评论: 0

    我有话说:

    java高频面试-在Spring,当一个Bean依赖另一个Bean时,如果这两个Bean之间出现了循环依赖,Spring会如何处理呢?

    Spring 循环依赖处理 循环依赖是指两个或多个Bean之间相互依赖,形成了相互引用关系。在Spring框架,如果遇到循环依赖,即两个Bean互相持有对方引用,Spring框架如何处理呢

    java高频面试-Spring Boot自动配置是如何工作,以及它优点是什么?

    Spring Boot自动配置是其设计理念核心之一,它通过约定大于配置思想,为开发者提供了一种零配置开发体验。以下是对这个问题详细解答: 自动配置原理: Spring Boot通过

    spring boot面试及答案持续更新

    2019-07-28最新整理spring boot面试及答案 1.Spring Boot是什么 这是摘自官方一段话 Spring Boot is designed to get you up

    java高频面试-线程池execute跟submit区别?

    ``当谈论线程池时,其中execute和submit是两种常用方法,它们在任务提交和执行上有所不同。 线程池 execute 与 submit 方法区别 1.execute 方法

    我向20k+以上java高级开发工程师提了那些面试问题

    公司需要一位java高级开发工程师,找到我去面试。我回忆了一下,记录部分我提问,如果大家刚兴趣可以给我留言,我视情况看是否继续补充,或者是否提供答案。 1.聊聊您对spring Boot一些见解

    java高频面试-mysqlInnoDB与MyISAM存储引擎有哪些区别 ?

    mysqlInnoDB与MyISAM存储引擎有哪些区别 ? MySQL是一个广泛使用关系型数据库管理系统,其中InnoDB和MyISAM是两种常用存储引擎。它们在功能和性能方面存在着显著差异

    java高频面试-java类加载需要经历哪些过程?

    本篇文章是基于JDK 8及以上版本Java类加载过程。 Java类加载过程 Java类加载是Java虚拟机(JVM)执行过程关键步骤。它涉及Java动态加载、链接和初始化。在本文,我们将

    java高频面试-Java如何实现序列化和反序列化?

    一.为什么要序列化? 序列化为数据持久化、远程通信、数据交换和对象复制提供了便捷解决方案。它是在不同系统间共享和传递对象一种常用方法。 几个常见原因: 持久化数据: 将对象序列化后存储在文件系统

    ...jar没有主清单属性, spring boot或者spring cloudmaven项目 java -jar test.jar 方式启动报错:...jar没有主清单属性

    1.spring boot或者spring cloudmaven项目老是遇到问题...jar没有主清单属性 2.解决方法:在pom.xml添加如下代码 <build> <

    java程序员必须知道网站

    sping官网 spring各种框架给java开发带来便利至今无法撼动 github 有各种语言项目都有托管在上面,各种demo使用起来省心省力 stackoverflow 各种程序所遇到

    面试:MySQL参数innodb_flush_log_at_trx_commit有什么作用?

    面试:MySQL参数innodb_flush_log_at_trx_commit有什么作用? innodb_flush_log_at_trx_commit是MySQLInnoDB存储引擎一个

    Java 平台标准版文档

    官方地址:https://docs.oracle.com/en/java/javase/index.html Java Platform, Standard Edition (Java SE) 帮助

    springboot1.5.9升级到springboot2.1.3遇到问题

    1.问题描述: Failed to bind properties under 'spring.datasource.druid.driver' to java.sql.Driver:  

    Java如何返回多个值

      我有一个方法,需要返回多个对象。可是Java只能返回一个值,请问如何才能返回多个值呢?

    Spring Boot应用或SpringCloud程序设置端口号几种方式

    前言:springboot项目每个应用都需要设置端口号,如何设置端口号呢?主要有以下这几种方式 1.通过配置文件设置: (1)在/src/main/resources/路径下

    加入公众号
    加入公众号