某厂Java岗面试遭Spring惨虐,面试官给了我7道问题让我明年再来

1233 篇文章 11 订阅
141 篇文章 0 订阅

当程序员当的越久,接触的越多,就会越“迷茫”。像我,分布式好像懂一点,源码也好像懂一点。技术栈越来越多,但是好像哪一点也不精通,就会代码写得越多越“迷茫”。我可以很负责任的告诉你,你只要精通Spring这一门,不说高枕无忧,也差不多了。

现在的主流Javaweb项目基本都使用了Spring技术,甚至会对Spring作深度扩展。Spring框架的应用比较简单,但是Spring项目比较庞大,单单一个SpringFramework项目就比较庞大,整个Spring全家桶更加庞大。

看看自己对Spring掌握的如何

  1. Spring bean的生命周期能不能结合源码回答一下这个问题、或者结合一下bean的生命的意义来回答,就是Spring为什么需要找个生命周期
  2. Spring容器当中包含了哪些常用组件(至少说5个),作用是什么,场景是什么;比如BeanDefinition;再比如BeanDefinitionMap
  3. Spring自动注入的原理是什么?能不能从源码来说明一下这个问题;我们常常说的自动注入,到底怎么注入的?有什么坑?怎么让你一个属性不自动注入
  4. Spring源码当中如何来搞定循环依赖的?Spring支持循环依赖?生命情况不支持?支持的原理是什么?能不能从源码来说明一下?
  5. 如何来二次扩展Spring,比如自定义一个实现自动注入的注解;不使用@Autowried,自己如何开发一个@XXX来完成自动注入?
  6. mybatis源码当中利用了Spirng的那些扩展?mybatis扩展Spring之后有哪些问题是无法解决的?比如二级缓存怎么解决
  7. eureka源码当中如何扩展的Spring?比如怎么动态插拔eureka的功能,利用了Spring的那个技术点,或者从源码说一下

Spring的关键技术你了解多少?

  • 关于IOC和DI,依赖注入和控制反转到底什么关系
  • Spring当中解决循环依赖的办法、什么场景下需要解决循环依赖
  • FactoryBean和BeanFactory以及普通Bean三者的关系和区别

在这里插上我的Spring学习笔记

这份文档蕴含Spring的知识点学习(配合下一章节的学习脑图是一个很不错的笔记),同时还有我自己平时整理的面试常会问的Spring面试题解析

Spring100题解析

Spring有哪些难点?

  • Springframework项目中比较典型的技术就是IOC和AOP,其中IOC的bean的生命周期比较复杂。
  • 针对Spring的源码做扩展也比较复杂。
  • Springframework项目中提供的组件比较丰富,每个组件都有其对应的功能,能不能合理利用起来Spring提供的组件是考察一个程序员对Spring应用熟悉程度的重要标准。
  • Spring的源码设计的比较优秀,利用了很多优秀的设计模式,需要考虑如何把这种设计模式利用到自己写的代码中需要好好借鉴、学习Spring源码中作者的思想。

学好Spring,对程序员找工作、面试有非常大的帮助。比如最新的spring5的新特性很多人都不理解,假设程序员能够读一遍spring源码把spring的设计思想完全理解,那么可以秒杀很多面试官和程序员。并且可以利用spring提供的扩展写出很多优秀的代码甚至中间件。

下面让我们来看看Spring学习的一个方向脑图!

基础概念

  • Spring的优点
  • Spring的缺点

SpringAOP

  • JDK 动态代理
  • CGLIB 动态代理
  • 静态代理
  • JDK动态代理和cglib的对比

SpringIOC

  • 依赖注入
  • 容器的初始化过程
  • bean知识
  • 大致流程

Spring事务管理

  • 基本概念
  • 事务控制
  • 事务属性
  • Spring事务管理接口
  • 事务管理一般在Service层

SpringMVC

  • 执行流程
  • 注解
  • servlet生命周期

Spring全家桶笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值