前言
Spring 框架自诞生以来一直备受开发者青睐,还有人亲切的称之为:Spring 全家桶。毋庸置疑,Spring 早已成为 Java 后端开发的行业标准,许多公司选择 Spring 作为基础的开发框架,大部分Java 后端程序员在日常工作中也会接触到 Spring。因此这是重点也是难点,工作中必须会,面试时肯定考。接下来是整理的一些资料!
01 Spring
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
1.1 Spring面试必备题+解析
- 什么是 Spring 框架?Spring 框架有哪些主要模块?
- 使用 Spring 框架能带来哪些好处?
- Spring 框架中有哪些不同类型的事件?
- Spring 框架中都用到了哪些设计模式?
- 什么是控制反转(IOC)?
- 请解释下 Spring 框架中的 IoC ?
- BeanFactory 和 和 ApplicationContext 有什么区别?
- Spring 有几种配置方式?
- 如何用基于 XML 配置的方式配置 Spring ?
- 如何用基于 Java 配置的方式配置 Spring ?
- 怎样用注解的方式配置 Spring ?
- 请解释 Spring Bean 的生命周期?
- Spring Bean 的作用域之间有什么区别?
- 什么是 Spring inner beans ?
- Spring 框架中的单例 Beans 是线程安全的么?
- 请举例说明如何在 Spring 中注入一个 Java Collection ?
- 如何向 Spring Bean 中注入一个 Java.util.Properties ?
- 请解释 Spring Bean 的自动装配?
- 请解释自动装配模式的区别?
- 如何开启基于注解的自动装配
- 请举例解释@Required 注解?
- 请举例解释@Autowired 注解?
- 请举例说明@Qualifier 注解?
- 构造方法注入和设值注入有什么区别?
- FileSystemResource 和 和 ClassPathResource 有何区别?
Spring面试必备题+解析
1.2 Spring学习笔记
(1)Spring源码深入解析
- 第一部分 核心实现
- 第1章 Spring整体架构和环境搭建
- 第2章 容器的基本实现
- 第3章 默认标签的解析
- 第4章 自定义标签的解析
- 第5章 bean的加载
- 第6章 容器的功能扩展
- 第7章 APO
- 第二部分 企业应用
- 第8章 数据库连接JDBC
- 第9章 整合MyBatis
- 第10章 事务
- 第11章 Spring MVC
- 第12章 远程服务
- 第13章 Spring消息
spring源码深入解析
(2)Spring实战
- 第一部分 Spring的核心
- 第1章 Spring之旅
- 第2章 装配Bean
- 第3章 最小化Spring XML配置
- 第4章 面向切面的Spring
- 第二部分 Spring应用程序的核心组件
- 第5章 征服数据库
- 第6章 事务管理
- 第7章 使用 SpringMVC 构建
- 第8章 使用Spring Web Flow
- 第9章 保护Spring应用
- 第三部分 Spring集成
- 第10章 使用远程服务
- 第11章 为Spring添加REST功能
- 第12章 Spring消息
Spring实战
1.3 Spring学习思维脑图
spring学习思维脑图
02 Spring Boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
2.1 Spring Boot面试必备题+解析
- 什么是 Spring Boot?
- Spring Boot 有哪些优点?
- 什么是 JavaConfig?
- 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
- Spring Boot 中的监视器是什么?
- 如何在 Spring Boot 中禁用 Actuator 端点安全性?
- 如何在自定义端口上运行 Spring Boot 应用程序?
- 什么是 YAML?
- 什么是 Spring Profiles?
- 什么是 Spring Batch?
- 如何集成 Spring Boot 和 ActiveMQ?
- 如何使用 Spring Boot 实现分页和排序?
- 什么是 Swagger?你用 Spring Boot 实现了它吗?
- 什么是 FreeMarker 模板?
- 如何使用 Spring Boot 实现异常处理?
- 您使用了哪些 starter maven 依赖项?
- 什么是 CSRF 攻击?
- 什么是 WebSockets?
- 什么是 AOP?
- 什么是 Apache Kafka?
- 我们如何监视所有 Spring Boot 微服务?
Spring Boot面试必备题+解析
2.2 Spring Boot学习笔记
(1)Spring Boot实践
Spring Boot实践
(2)SpringBoot揭秘 快速构建微服务体系
SpringBoot揭秘 快速构建微服务体系
2.3 SpringBoot学习思维脑图
SpringBoot学习思维脑图
03 Spring Cloud
springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易。通过一些简单的注解,我们就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。
SpringCloud的组件相当繁杂,拥有诸多子项目。重点关注Netflix
3.1 Spring Cloud面试必备题+解析
- 什么是 Spring Cloud?
- 使用 Spring Cloud 有什么优势?
- 服务注册和发现是什么意思?Spring Cloud 如何实现?
- 负载平衡的意义什么?
- 什么是 Hystrix?它如何实现容错?
- 什么是 Hystrix 断路器?我们需要它吗?
- 什么是 Spring Cloud Bus?我们需要它吗?
- 什么是 Netflix Feign?它的优点是什么?
Spring Cloud面试必备题+解析
3.2 Spring Cloud学习笔记
(1)Spring Cloud参考指南
Spring Cloud参考指南
04 Spring MVC
SpringMVC是一种基于Java的实现MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发
4.1 Spring MVC面试必备题+解析
- 什么是 SpringMvc?
- Spring MVC 的优点:
- SpringMVC 工作原理?
- SpringMVC 流程?
- SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
- 如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?
- SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代?
- @RequestMapping 注解用在类上面有什么作用?
- 怎么样把某个请求映射到特定的方法上面?
- 如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
- 怎么样在方法里面得到 Request,或者 Session?
- 我想在拦截的方法里面得到从前台传入的参数,怎么得到?
- 如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
- SpringMvc 中函数的返回值是什么?
- SpringMVC 怎么样设定重定向和转发的?
- SpringMvc 用什么对象从后台向前台传递数据的?
- SpringMvc 中有个类把视图和数据都合并的一起的,叫什么?
- 怎么样把 ModelMap 里面的数据放入 Session 里面?
- SpringMvc 怎么和 AJAX 相互调用的?
- 讲下 SpringMvc 的执行流程
- SpringMvc 里面拦截器是怎么写的?
- 当一个方法向 AJAX 返回特殊对象,譬如 Object,List 等,需要做什么处理?
Spring MVC面试必备题+解析
4.2 Spring MVC学习笔记
(1)看透Spring MVC源代码分析与实践
看透Spring MVC源代码分析与实践
(2)精通Spring MVC