Spring

觉知此事要躬行...

Posted by Lydia on July 26, 2020

总结

  • Bean生命周期、BeanFactory、ApplicationContext启动流程
  • IOC、AOP原理
  • 动态代理、循环引用问题

此次面试过程未涉及Spring,但个人认为Spring源码值得学习。

参考

史上最全阿里 Java 面试题总结

Spring面试题(2020最新版)

Spring MVC面试题(2020最新版)

Spring Boot面试题(2020最新版)

Spring Cloud面试题(2020最新版)

SpringBoot启动流程解析


  1. 简单讲讲tomcat结构,以及其类加载器流程,线程模型等。

Tomcat结构,以及其类加载器流程,线程模型

Tomcat源码分析 – Tomcat类加载器

  1. tomcat如何调优,涉及哪些参数 。

(荐)Tomcat 调优及 JVM 参数优化

Tomcat调优总结

  1. 讲讲Spring加载流程。

【Spring源码分析】Bean加载流程概览

  1. Spring AOP的实现原理。

Spring AOP实现原理

AOP如何实现及实现原理

JDK动态代理(Dynamic Proxy)基于标准JDK的动态代理功能只针对实现了接口的业务对象CGLIB通过动态地对目标对象进行子类化来实现AOP代理,需要指定@EnableAspectJAutoProxy(proxyTargetClass = true)来强制使用当业务对象没有实现任何接口的时候默认会选择CGLIB

  1. 讲讲Spring事务的传播属性。

Spring事务传播行为详解

  1. Spring如何管理事务的。

可能是最漂亮的Spring事务管理详解

  1. Spring怎么配置事务(具体说出一些关键的xml 元素)。

Spring事务管理——使用XML配置声明式事务

  1. 说说你对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的。

Spring工作原理与单例

  1. Springmvc 中DispatcherServlet初始化过程。

SpringMVC DispatcherServlet初始化过程

image

  1. netty的线程模型,netty如何基于reactor模型上实现的。

netty学习系列二:NIO Reactor模型 & Netty线程模型

  1. 为什么选择netty。

彻底理解Netty,这一篇文章就够了

如果不用netty,使用原生JDK的话,有如下问题:1、API复杂2、对多线程很熟悉:因为NIO涉及到Reactor模式3、高可用的话:需要出路断连重连、半包读写、失败缓存等问题4、JDK NIO的bug而Netty来说,他的api简单、性能高而且社区活跃(dubbo、rocketmq等都使用了它)。

  1. 什么是TCP粘包,拆包。解决方式是什么。

Netty(三) 什么是 TCP 拆、粘包?如何解决?

  1. netty的fashwheeltimer的用法,实现原理,是否出现过调用不够准时,怎么解决。

image

HashedWheelTimer-大量定时器解决方案(Netty与kafka)

  1. netty的心跳处理在弱网下怎么办。

浅析 Netty 实现心跳机制与断线重连

  1. netty的通讯协议是什么样的。

netty支持的协议

  1. springmvc用到的注解,作用是什么,原理。

  2. springboot启动机制。

SpringBoot启动流程解析

  1. 点击这里有一套答案版的Spring试题。