ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

阿里四面P7稳了,得亏我会这些Spring面试题,果然大厂都爱问它们

2020-08-03 21:00:22  阅读:137  来源: 互联网

标签:面试题 依赖 P7 Spring 源码 spring 日志 循环


前言

先说一下本人情况吧,末流985毕业,毕业之后一直在一家不大不小的公司里安稳上班。上半年因为疫情的原因公司调整了工资,我也是随波逐流跟随大家辞了职。辞职之后向阿里。字节这些都投了简历(但是只收到了阿里的回复)。一路居然惊险但也是成功斩下offer,问的都是最近两年新出的面试频度较高的面试题!,现在我把我所学的分享给大家!

作为一名Java方向的程序员,在面试大厂的时候,其实关于spring这一块是问的非常多的,尤其是源码这一块,几乎是逢面试必问,虽然说现在技术更新比较快,但是掌握好spring以及它的源码绝对是你面试的一个杀手锏。以下这份文档就包括了spring从基础到源码主要涉及到的内容有如下

  • Spring框架功能整体介绍
  • Spring IOC容器底层注解使用
  • Spring Ioc容器源码解析
  • Spring 是如何解决循环依赖的
  • Spring Aop源码分析
  • spring 事务源码解析

首先跟大家说一下就是我碰到的面试题,关于spring循环依赖的

什么是循环依赖?

循环依赖其实就是循环引用,也就是两个或者两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图:

注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件。

Spring中循环依赖场景有:

(1)构造器的循环依赖

(2)field属性的循环依赖

其中,构造器的循环依赖问题无法解决,只能拋出BeanCurrentlyInCreationException异常,在解决属性循环依赖时,spring采用的是提前暴露对象的方法。

Spring怎么解决循环依赖

这里附上一张解决Spring循环依赖的流程图

由于图片过大可能导致模糊,需要这套图的可以关注我的公众号:前程有光直接获取
面对大厂问Spring源码而言,很多的Java面试者都纷纷败北,源码没有一个正确的方法学起来确实挺吃力的,在这把之前学源码的一些经验和笔记分享给大家,希望对那些还在学习Spring源码的朋友有所帮助!

一、 Spring框架功能整体介绍

  • Sring Core Container
  • Beans (BeanFacotry的作用)
  • Context
  • Expression Language )
  • Spring Data Access/Integration
  • Transaction
  • Spring Web
  • Spring Aop
  • Instrumentation
  • 控制反转和依赖注入
  • 什么是控制反转?

二、Spring IOC容器底层注解使用

  • xml配置文件的形式 VS 配置类的形式
  • 基于xml的形式定义Bean的信息
  • 基于读取配置类的形式定义Bean信息
  • 在配置类上写@CompentScan注解来进行包扫描
  • 排除用法 excludeFilters
  • 包含用法 includeFilters
  • @ComponentScan.Filter type的类型
  • FilterType.CUSTOM 自定义类型如何使用

三、Spring Ioc容器源码解析

  • Spring源码解析之扩展原理
  • ApplicationListener:Spring是如何发布事件的? )
  • BeanDefinitionRegistryPostProcessor的处理源码流程
  • BeanFactoryPostProcessor 处理流程
  • Spring Bean的实例化过程
  • bean实例化过程的调用链
  • bean的实例化过程源码分析
  • SpringIOC容器启动源码的分析

四、Spring 是如何解决循环依赖的

  • 什么是循环依赖?
  • 代码实例:
  • 可能存在的问题:
  • 解决方案:
  • 什么是早期引用?

五、 Spring Aop源码分析

  • AOP
  • 基本概念
  • 简单案例
  • @EnableAspectJAutoProxy
  • Import(AspectJAutoProxyRegistrar.class)
  • 所以我们来分析AspectJAutoProxyRegistrar类是用来干什么的?

六、spring 事务源码解析

  • 事务概念解析
  • 什么是事物?
  • 事物的特性(ACID)
  • Spring事务三大接口介绍
  • PlatformTransactionManager接口介绍
  • TransactionDefinition 事务属性的定义

七、Spring5.0新特性之日志框架

  • 日志框架场景
  • 我们Java中常用的日志框架是什么?
  • 我们常常听说的就是如下的日子框架,还不知道怎么选?
  • 加入我们系统使用的是SLF4J作为日志门面,我们是如何匹配?
  • Spring4.Xspring底层使用的日志技术
  • Spring5.x 底层使用的日志技术

    以上就是这份文档的概况,一次搞懂spring以及核心源码,不管是架构师还是开发者,又或是运维,都能够从中学到不少。

由于篇幅原因,这份spring核心笔记已经被整理成了PDF文档,有需要这份spring核心笔记完整文档的可以关注我的公众号:前程有光免费获取

标签:面试题,依赖,P7,Spring,源码,spring,日志,循环
来源: https://www.cnblogs.com/lwh1019/p/13428776.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有