莫慌莫慌,今天就来跟你好好唠嗑唠嗑Spring,一套集结Spring面试、知识体系大纲还有源码解读的宝藏级笔记。
先来搞清楚,什么是Spring?
Spring是一个开源框架,是于2003 年兴起的一个轻量级的Java 开发框架,它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。然而,Spring的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架
搞清楚之后,你就应该自己去手绘一份Spring的知识体系大纲,就像这样(看下图)
AOP、IOC、事务管理等等,每一份的脑图都能体现你对其的理解,同时也能迅速帮助你一览全部知识块,恢复整个知识脉络。
这份Spring的知识脉络体系大纲,展现的是我自己对其每个知识点的理解并将其手绘出来,便于梳理。
梳理完知识脉络了,不知道这Spring面试100问你能否招架得住?
我收集整理了面试官最爱的Spring灵魂100问,并将其分成了以下四个部分: (一)基本概念面试题集( Spring 相关概念梳理) (二)应用场景面试题集(各知识点不同使用场景选型) (三)深度度知识面试题集(底层实现原理详解) (四)拓展内容面试题集(Spring Boot 相关题集)先看问题,答案解析在后(已整理,建议先自行测试一下)
(一)基本概念面试题集( Spring 相关概念梳理)
- 1. 谈谈对 Spring IoC 的理解?
- 2. 谈谈对 Spring DI 的理解?
- 3. BeanFactory 接口和 ApplicationContext 接口不同点是什么?
- 4. 请介绍你熟悉的 Spring 核心类,并说明有什么作用?
- 5. 介绍一下 Spring 的事务的了解?
- 6. 介绍一下 Spring 的事务实现方式?
- 7. 解释 AOP 模块
- 8. Spring 的通知类型有哪些,请简单介绍一下?
- 9. Spring 通知类型使用场景分别有哪些?
- 10. 请介绍一下你对 Spring Beans 的理解?
- 11. Spring 有哪些优点?
- 12. 在Spring中使用hibernate的方法步骤
- 13. Spring 和 Struts 的区别?
- 14. Spring 框架由哪几部分组成?
- 15. 谈谈你对 BeanFactory的理解,BeanFactory 实现举例
- 16. 谈谈对 Spring 中的 Web 模块的理解
- 17. BeanFactory 和 Application contexts 有什么区别?
- 18. 谈谈你对 Spring 依赖注入的理解?
- 19. 什么是 Bean 装配?
- 20. 什么是 Bean 的自动装配?
- 21. 介绍一下自动装配有几种方式?
- 22. 什么是基于注解的容器配置?
- 23. 简述 JdbcTemplate 类的作用
- 24. 解释 AOP
- 25. 解释 Aspect 切面
- 26. 简述 Spring AOP 中的通知
- 27. Spring AOP 中的织入你怎样理解?
- 28. 请详细介绍一下 Spring MVC 的流程?
- 29. Spring 配置文件?
- 30. @RequestMapping 注解用在类上面有什么作用
- 31. 怎么样把某个请求映射到特定的方法上面
- 32. 谈谈 Spring 对 DAO 的支持
(二)应用场景面试题集(各知识点不同使用场景选型)
- 33. Spring 配置 Bean 实例化有哪些方式?
- 34. Bean 注入属性有哪几种方式
- 35. 在 Spring 中如何实现时间处理?
- 36. Spring 中如何更高效的使用 JDBC ?
- 37. 请介绍一下设计模式在 Spring 框架中的使用?
- 38. 讲讲 Spring 框架的优点有哪些?
- 39. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入?
- 40. 你怎样定义类的作用域?
- 41. 解释 Spring 支持的几种 Bean 的作用域
- 42. 在 Spring 中如何注入一个 Java 集合?
- 43. 你可以在 Spring 中注入一个 null 和一个空字符串吗?
- 44. 什么是基于 Java 的 Spring 注解配置? 给一些注解的例子
- 45. 你更倾向用哪种事务管理类型?
- 46. Bean 的调用方式有哪些?
- 47. Spring MVC 里面拦截器是怎么写的
- 48. 当一个方法向 AJAX 返回特殊对象,比如 Object、List 等,需要做什么处理?
- 49. 如何使用 Spring MVC 完成 JSON 操作
- 50. Spring 如何整合 Hibernate
- 51. Spring 如何整合 Struts2 ?
- 52. 开发中主要使用 Spring 的什么技术 ?
- 53. 介绍一下 Spring MVC 常用的一些注解
- 54. Spring 框架的事务管理有哪些优点
(三)深度度知识面试题集(底层实现原理详解)
- 55. IoC 控制反转设计原理?
- 56. Spring 的生命周期?
- 57. Spring 如何处理线程并发问题?
- 58. 核心容器(应用上下文)模块的理解?
- 59. 为什么说 Spring 是一个容器?
- 60. Spring 的优点?
- 61. Spring 框架中的单例 Beans 是线程安全的么?
- 62. Spring 框架中有哪些不同类型的事件?
- 63. IoC 的优点是什么?
- 64. 解释 Spring 框架中 Bean 的生命周期
- 65. 什么是 Spring 的内部 Bean?
- 66. 自动装配有哪些局限性 ?
- 67. Spring 框架的事务管理有哪些优点?
- 68. 在 Spring AOP 中,关注点和横切关注的区别是什么?
- 69. 说说 Spring AOP 的底层实现原理?
- 70. 如何给 Spring 容器提供配置元数据?
- 71. 哪些是重要的 Bean 生命周期方法? 你能重载它们吗?
- 72. 讲下 Spring MVC 的执行流程
- 73. Spring MVC 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
- 74. Spring 中循环注入的方式?
- 75. Spring MVC 比较 Struts2
(四)拓展内容面试题集(Spring Boot 相关题集)
- 76. 什么是 Spring Boot?
- 77. Spring Boot 自动配置的原理?
- 78. Spring Boot 读取配置文件的方式?
- 79. 什么是微服务架构?
- 80. Ribbon 和 Feign 的区别?
- 81. Spring Cloud 断路器的作用?
- 82. 为什么要用 Spring Boot?
- 83. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
- 84. Spring Boot 的配置文件有哪几种格式?它们有什么区别?
- 85. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
- 86. 开启 Spring Boot 特性有哪几种方式?
- 87. Spring Boot 需要独立的容器运行吗?
- 88. 运行 Spring Boot 有哪几种方式?
- 89. 你如何理解 Spring Boot 中的 Starters?
- 90. 如何在 Spring Boot 启动的时候运行一些特定的代码?
- 91. Spring Boot 有哪几种读取配置的方式?
- 92. Spring Boot 实现热部署有哪几种方式?
- 93. Spring Boot 多套不同环境如何配置?
- 94. Spring Boot 可以兼容老 Spring 项目吗,如何做?
- 95. 什么是 Spring Cloud?
- 96. 介绍一下 Spring Cloud 常用的组件?
- 97. Spring Cloud 如何实现服务注册的?
- 98. 什么是负载均衡?有什么作用?
- 99. 什么是服务熔断?
- 100. 请介绍一下 Ribbon 的主要作用?
题目100道已经全部列举,加上答案却整理成了51页的PDF了,太多了,不方便一一展示!
梳理完了知识体系,看完了面试,再来深入学习一下Spring源码
得了一份《手写Spring高级源码解析》,大致包含下面这些内容,先粗略看看,后面细说
内容详解
总结
一路下来,说了这么多,看了这么多,还想问问:面试官杠上 ☞Spring☜ 是种什么体验?还慌吗?如果有小伙伴需要以上笔记可以私信【笔记】即可!感谢支持!!
本文含有隐藏内容,请 开通VIP 后查看