阿里 1 面:读过spring源码么,可以介绍一下么?

简介:   这个是一个粉丝去阿里面试,由于他的简历上写了读过 spring 的源码,  所以面试官就问到了:看你读过 spring 的源码,可以介绍一下他的流程么?  说实话,这个问题如果能够回答好,不说别的,spring 这块说明你掌握的还是比较到位的,会让面试官刮目相看。  1、面试官想考察什么?

  这个是一个粉丝去阿里面试,由于他的简历上写了读过 spring 的源码,

  所以面试官就问到了:看你读过 spring 的源码,可以介绍一下他的流程么?

  说实话,这个问题如果能够回答好,不说别的,spring 这块说明你掌握的还是比较到位的,会让面试官刮目相看。

  1、面试官想考察什么?

  这个面试题算是一个开放性的面试题,面试官主要是想考察你对spring掌握的程度,所以大家可以根据自己掌握的程度随意发挥,但是有 2 点大家尽量回答上来

  第 1 点:spring 容器启动过程中的关键流程节点第 2 点:spring 为咱们提供的一些扩展点,这些扩展点是非常重要的,能够对 spring 进行扩展,至少算是高工了,也能体现出你的能力2、尝试回答一下spring 是一个快速开发框架,可以帮助我们来管理对象spring 的源码是非常优秀的,用到了很多设计模式,整体的质量在开源框架中数一数二,这句话说出来,逼格直接上来了3、spring 容器的大致流程创建 spring 容器:此阶段会创建 BeanFactory初始化 spring 容器:这个阶段对 bean 容器进行各种配置,这个阶段中,我们可以在容器中添加一些扩展点,spring 为我们提供了 3 个扩展接口,这 3 个接口可以对容器的过程进行干预,3 个接口分别是(这 3 个接口能够回答上来是很牛的):BeanDefinitionRegistryPostProcessor:用来干预 bean 的注册BeanFactoryPostProcessor:用来对 spring 容器中的 bean 定义进行修改,调整 bean 定义的一些属性的值BeanPostProcessor:用来对 bean 的创建过程进行扩展启动容器,开始进行扫描,扫描会得到 BeanDefinition 对象,放在一个 Map 中,每个 BeanDefinition 对象中包含了每个 bean 定义的详细信息(比如 bean 的名称、bean 地类、bean 的注入方式、bean 的初始化方法、销毁方法等信息)容器会对 BeanDefinition 进行过滤,二手手机转让得到所有非懒加载即单例的 bean,然后开始创建这些 beanbean 的创建过程主要有:实例化、初始化、注入依赖,bean 在创建的过程中有很多扩展点,这些扩展点基本上都是通过 BeanPostProcessor 接口或者子接口来实现的,我们如果想对 bean 的创建过程进行干预,那么也可以自己创建一些 BeanPostProcessor,将其配置到 spring 容器中。spring 中有很多功能都是通过这个接口实现的,比如:spring 中的 aop、事务、异步处理、缓存、@Autowired 注解等等都是通过 BeanPostProcessor 来实现的,所以这个接口特别的强大。容器启动完毕,然后会发布容器启动完毕的事件这里回头再来说说这俩接口:BeanFactoryPostProcessor 和 BeanDefinitionRegistryPostProcessor,特别强大的两个接口,这俩接口可以用来干预 spring 容器中 bean 的定义,比如对容器中定义的 bean 列表进行增删改查,这个就特别厉害了,比如我们熟悉的@Configuration 注解就是靠这个实现的4、总结

  算是一个送分题,没有特别标准的答案,说出大概的流程,及这 3 个接口(BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor、BeanPostProcessor)就差不多了。

目录
相关文章
|
13天前
|
数据采集 监控 前端开发
二级公立医院绩效考核系统源码,B/S架构,前后端分别基于Spring Boot和Avue框架
医院绩效管理系统通过与HIS系统的无缝对接,实现数据网络化采集、评价结果透明化管理及奖金分配自动化生成。系统涵盖科室和个人绩效考核、医疗质量考核、数据采集、绩效工资核算、收支核算、工作量统计、单项奖惩等功能,提升绩效评估的全面性、准确性和公正性。技术栈采用B/S架构,前后端分别基于Spring Boot和Avue框架。
|
3天前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
22 9
|
28天前
|
Java Spring
Spring底层架构源码解析(三)
Spring底层架构源码解析(三)
|
28天前
|
XML Java 数据格式
Spring底层架构源码解析(二)
Spring底层架构源码解析(二)
|
1月前
|
设计模式 JavaScript Java
Spring 事件监听机制源码
Spring 提供了事件发布订阅机制,广泛应用于项目中。本文介绍了如何通过自定义事件类、订阅类和发布类实现这一机制,并展示了如何监听 SpringBoot 启动过程中的多个事件(如 `ApplicationStartingEvent`、`ApplicationEnvironmentPreparedEvent` 等)。通过掌握这些事件,可以更好地理解 SpringBoot 的启动流程。示例代码展示了从事件发布到接收的完整过程。
|
29天前
|
XML Java 数据格式
手动开发-简单的Spring基于注解配置的程序--源码解析
手动开发-简单的Spring基于注解配置的程序--源码解析
45 0
|
29天前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
76 0
|
6月前
|
XML Java uml
spring 源码解析——第一篇(ioc xml方式)
spring 源码解析——第一篇(ioc xml方式)
60 0
|
6月前
|
安全 Java 应用服务中间件
阿里技术官架构使用总结:Spring+MyBatis源码+Tomcat架构解析等
分享Java技术文以及学习经验也有一段时间了,实际上作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来让自己得到相应的提升。
|
6月前
|
Java 关系型数据库 数据库连接
Spring源码解析--深入Spring事务原理
本文将带领大家领略Spring事务的风采,Spring事务是我们在日常开发中经常会遇到的,也是各种大小面试中的高频题,希望通过本文,能让大家对Spring事务有个深入的了解,无论开发还是面试,都不会让Spring事务成为拦路虎。
88 1
下一篇
无影云桌面