吃透互联网必问的100道Spring全家桶高频真题,金九银十稳了
yuyutoo 2024-10-26 16:09 1 浏览 0 评论
前言
这篇文章主要是记录一下自己的面试经历,分享一些小伙伴们都很关注的面试题,然后文章末尾也会推荐一些电子书籍,完全免费推荐的哈,我个人感觉不错的,可以提升技术的,当然面试中也会对你有特别大的帮助。这次主要分享Spring全家桶系列的面试题,当然,面试题只是起一个查漏补缺的作用,并不是让你直接去整理答案,去背答案的哈。一个合格的面试官,是会针对你的简历去问的,每个人的面试题也都是不一样的。
喜欢挑战自己的可以先看目录自己做做,不会的再看答案解析!
一、微服务
- Sentinel怎么防止激增流量打垮冷系统?
- Ribbon说说有哪些负载均衡策略
- 你们的微服务项目里面有没有用到什么监控追踪工具?
- 说说Seata的实现原理?
- 什么是服务熔断?什么是服务降级?区别是什么?
- 什么是服务雪崩?什么是服务限流?
- 说说服务网关可以做什么?
- 谈谈配置中心?
- 注册中心的原理是什么?
- Spring Cloud有哪些常用组件,作用是什么?
- 分布式架构下会有什么问题?
- SOA、分布式、微服务之间有什么关系和区别?
- 什么情况下需要进行微服务架构?
二、Spring Boot
- 说说你在开发的时候怎么在SpringBoot的基础上做扩展?
- SpringBoot的默认日志实现框架是什么?怎么切换成别的?
- SpringBoot读取配置文件的原理是什么?
- SpringBoot中配置文件的加载顺序是怎样的?
- 会不会SpringBoot自定义Starter?大概实现过程?
- SpringBoot外置Tomcat启动原理?
- SpringBoot内置Tomcat启动原理?
- SpringBoot的启动原理?
- 为什么SpringBoot的jar可以直接运行?
- springboot的自动配置原理?
- SpringBoot的核心注解
- Spring和SpringBoot的关系和区别?
- 谈谈你对SpringBoot的理解,它有哪些特性(优点)?
三、Spring MVC
- SpringMVC的拦截器和过滤器有什么区别?执行顺序?
- 如何实现无XML零配置的SpringMVC
- 是否可以把我们所需的Bean都放入Spring-mvc子容器里面来管理(springmvc的spring-servlet.xml中配置全局扫描)?
- 是否可以把所有Bean都通过Spring容器来管理?(Spring的applicationContext.xml中配置全局扫描)
- Spring和SpringMVC为什么需要父子容器?
- SpringMvc怎么和AJAX相互调用的?
- 请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?
- Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?
- 说说你是如何解决 get 和 post 乱码问题?
- 什么是Spring MVC?简单介绍下你对Spring MVC的理解?
四、Spring核心API
- Spring是如何整合MyBatis将Mapper接口注册为Bean的原理?
- Spring 框架中都用到了哪些设计模式?
- Spring事件监听的核心机制是什么?
五、Spring事务
- Spring事务的失效原因?
- Spring多线程事务 能否保证事务的一致性(同时提交、同时回滚)?
- Spring事务传播行为实现原理:
- Spring事务实现原理
- 说一下 spring 的事务隔离?
- 说一下Spring的事务传播行为
- Spring支持的事务管理类型, spring 事务实现方式有哪些?
- 事务四大特性
六、Spring AOP
- Spring的 Aop的完整实现流程?
- Spring的AOP是在哪里创建的动态代理?
- 什么情况下AOP会失效,怎么解决?
- 介绍AOP有几种实现方式
- JavaConfig方式如何启用AOP?如何强制使用cglib?
- JDK动态代理和CGLIB动态代理的区别
- Spring AOP and AspectJ AOP 有什么区别?
- Spring通知有哪些类型?
- 解释一下Spring AOP里面的几个名词
- 什么是AOP、能做什么
七、Spring注解
- 为什么@ComponentScan 不设置basePackage也会扫描?
- @Bean之间的方法调用是怎么保证单例的?
- 配置类@Configuration的作用解析原理:
- 使用@Autowired注解自动装配的过程是怎样的?
- @Autowired和@Resource之间的区别
- @Autowired 注解有什么作用
- 如何让自动注入找到多个依赖Bean时不报错
- 如何让自动注入没有找到依赖Bean时不报错
- @Import可以有几种用法?
- @Component, @Controller, @Repository, @Service 有何区别?
- 用过JavaConfig方式的spring配置吗?它是如何替代xml的?
- Spring有哪几种配置方式:
八、Spring Beans
- Bean的创建顺序是什么样的?
- Spring容器启动时,为什么先加载BeanFactoryPostProcess
- 如何在Spring所有Bean创建完后做扩展?
- 如何在Spring所有BeanDefinition注册完后做扩展?
- BeanDefinition的加载过程:
- Spring如何避免在并发下获取不完整的Bean?
- Spring是如何解决Bean的循环依赖?
- 解释Spring框架中bean的生命周期
- Spring 在加载过程中Bean有哪几种形态:
- 有哪些生命周期回调方法?有哪几种实现方式?
- 解释不同方式的自动装配,spring 自动装配 bean 有哪些方式?
- 自动装配有哪些限制(需要注意)?
- 什么是bean的自动装配?
- 什么是bean装配?
- Spring如何处理线程并发问题?
- Spring框架中的单例bean是线程安全的吗?
- Spring实例化bean方式的几种方式
- 单例bean的优势
- 解释Spring支持的几种bean的作用域
- 配置Bean有哪几种方式?
- 什么是Spring beans?
九、Spring IOC
- 你知道Spring的哪些扩展点,在什么时候调用?
- IOC容器的加载过程:
- BeanFactory 和FactoryBean有什么区别?
- BeanFactory 和 ApplicationContext有什么区别?
- BeanDefinition的作用
- BeanFactory的作用
- 紧耦合和松耦合有什么区别?
- 什么是Spring的依赖注入(DI)?IOC和DI的区别是什么
- Spring IoC 的实现机制是什么?
- IOC的优点是什么?
- 控制反转(IoC)有什么作用
- 什么是Spring IOC 容器?有什么作用?
十、Spring Framework
- Spring的优缺点是什么?
- 谈谈你对Spring的理解
一、Spring MVC
1、SpringMVC的拦截器和过滤器有什么区别?执行顺序?
- 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
- 拦截器只能对action请求(DispatcherServlet 映射的请求)起作用,而过滤器则可以对几乎所有的请求起作用。
- 拦截器可以访问容器中的Bean(DI),而过滤器不能访问(基于spring注册的过滤器也可以访问容器中的bean)。
多个过滤器的执行顺序跟xml文件中定义的先后关系有关
当然,对于多个拦截器它们之间的执行顺序跟在SpringMVC的配置文件中定义的先后顺序有关。
2、如何实现无XML零配置的SpringMVC
1. 省略web.xml
- a. servlet3.0之后规范中提供了SPI扩展:META-INF/services/javax.servlet.ServletContainerInitializer
- b. SpringMVC通过实现ServletContainerInitializer接口
- c. 动态注册ContextLoaderListener 和DispatcherServlet并创建子父容器(Application)
2. 省略spring.xml和spring-mvc.xml(只是sprinmvc方式 ,springboot在自动配置类完成) 配置类--xml
- a. 实现一个继承AbstractAnnotationConfigDispatcherServletInitializer的类
- b. 该类就实现了ServletContainerInitializer,它会创建ContextLoaderListener 和DispatcherServlet
- c. 还会创建父子容器, 创建容器时传入父子容器配置类则可以替代spring.xml和spring-mvc.xml
3、是否可以把我们所需的Bean都放入Spring-mvc子容器里面来管理(springmvc的spring-servlet.xml中配置全局扫描)?
可以 , 因为父容器的体现无非是为了获取子容器不包含的bean, 如果全部包含在子容器完全用不到父容器了, 所以是可以全部放在springmvc子容器来管理的。
虽然可以这么做不过一般应该是不推荐这么去做的,一般人也不会这么干的。如果你的项目里有用到事物、或者aop记得也需要把这部分配置需要放到Spring-mvc子容器的配置文件来,不然一部分内容在子容器和一部分内容在父容器,可能就会导致你的事物或者AOP不生效。 所以如果aop或事物如果不生效也有可能是通过父容器(spring)去增强子容器(Springmvc),也就无法增强。
4、是否可以把所有Bean都通过Spring容器来管理?(Spring的applicationContext.xml中配置全局扫描)
5、Spring和SpringMVC为什么需要父子容器?
就功能性来说不用子父容器也可以完成(参考:SpringBoot就没用子父容器)
- 1. 所以父子容器的主要作用应该是划分框架边界。有点单一职责的味道。service、dao层我们一般使用spring框架来管理、controller层交给springmvc管理
- 2. 规范整体架构 使 父容器service无法访问子容器controller、子容器controller可以访问父容器 service
- 3. 方便子容器的切换。如果现在我们想把web层从spring mvc替换成struts,那么只需要将spring-mvc.xml替换成Struts的配置文件struts.xml即可,而spring-core.xml不需要改变。
- 4. 为了节省重复bean创建
6、SpringMvc怎么和AJAX相互调用的?
7、请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?
(1)用户发送请求至前端控制器DispatcherServlet;
(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
(4)DispatcherServlet 调用 HandlerAdapter处理器适配器;
(5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
(6)Handler执行完成返回ModelAndView;
(7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
(9)ViewResolver解析后返回具体View;
(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
(11)DispatcherServlet响应用户
8、Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?
9、说说你是如何解决 get 和 post 乱码问题?
10、什么是Spring MVC?简单介绍下你对Spring MVC的理解?
11、SpringBoot的核心注解一、微服务。
二、Spring Boot
1、说说你在开发的时候怎么在SpringBoot的基础上做扩展?
2、SpringBoot的默认日志实现框架是什么?怎么切换成别的?
3、SpringBoot读取配置文件的原理是什么?
4、SpringBoot中配置文件的加载顺序是怎样的?
5、会不会SpringBoot自定义Starter?大概实现过程?
6、SpringBoot外置Tomcat启动原理?
7、SpringBoot内置Tomcat启动原理?
8、SpringBoot的启动原理?
Spring全家桶面试笔记共享:关注+转发后,私信【全家桶】获取完整答案解析!
9、为什么SpringBoot的jar可以直接运行?
10、springboot的自动配置原理?
11、SpringBoot的核心注解
12、Spring和SpringBoot的关系和区别?
13、谈谈你对SpringBoot的理解,它有哪些特性(优点)?
三、微服务
1、Sentinel怎么防止激增流量打垮冷系统?
2、Ribbon说说有哪些负载均衡策略
3、你们的微服务项目里面有没有用到什么监控追踪工具?
4、说说Seata的实现原理?
5、什么是服务熔断?什么是服务降级?区别是什么?
6、什么是服务雪崩?什么是服务限流?
7、说说服务网关可以做什么?
8、谈谈配置中心?
9、注册中心的原理是什么?
10、Spring Cloud有哪些常用组件,作用是什么?
11、分布式架构下会有什么问题?
12、SOA、分布式、微服务之间有什么关系和区别?
13、什么情况下需要进行微服务架构?
四、Spring核心API
1、Spring是如何整合MyBatis将Mapper接口注册为Bean的原理?
2、Spring 框架中都用到了哪些设计模式?
3、Spring事件监听的核心机制是什么?
五、Spring事务
1、Spring事务的失效原因?
2、Spring多线程事务 能否保证事务的一致性(同时提交、同时回滚)?
3、Spring事务传播行为实现原理:
4、Spring事务实现原理
5、说一下 spring 的事务隔离?
6、说一下Spring的事务传播行为
7、Spring支持的事务管理类型, spring 事务实现方式有哪些?
8、事务四大特性
六、Spring AOP
1、Spring的 Aop的完整实现流程?
2、Spring的AOP是在哪里创建的动态代理?
3、什么情况下AOP会失效,怎么解决?
4、介绍AOP有几种实现方式
5、JavaConfig方式如何启用AOP?如何强制使用cglib?
6、JDK动态代理和CGLIB动态代理的区别
7、Spring AOP and AspectJ AOP 有什么区别?
8、Spring通知有哪些类型?
9、解释一下Spring AOP里面的几个名词
10、什么是AOP、能做什么
七、Spring注解
1、为什么@ComponentScan 不设置basePackage也会扫描?
2、@Bean之间的方法调用是怎么保证单例的?
3、配置类@Configuration的作用解析原理:
4、使用@Autowired注解自动装配的过程是怎样的?
5、@Autowired和@Resource之间的区别
6、@Autowired 注解有什么作用
7、如何让自动注入找到多个依赖Bean时不报错
8、如何让自动注入没有找到依赖Bean时不报错
9、@Import可以有几种用法?
10、@Component, @Controller, @Repository, @Service 有何区别?
11、用过JavaConfig方式的spring配置吗?它是如何替代xml的?
12、Spring有哪几种配置方式:
八、Spring Beans
1、Bean的创建顺序是什么样的?
2、Spring容器启动时,为什么先加载BeanFactoryPostProcess
3、如何在Spring所有Bean创建完后做扩展?
4、如何在Spring所有BeanDefinition注册完后做扩展?
5、BeanDefinition的加载过程:
6、Spring如何避免在并发下获取不完整的Bean?
7、Spring是如何解决Bean的循环依赖?
8、解释Spring框架中bean的生命周期
9、Spring 在加载过程中Bean有哪几种形态:
10、有哪些生命周期回调方法?有哪几种实现方式?
11、解释不同方式的自动装配,spring 自动装配 bean 有哪些方式?
12、自动装配有哪些限制(需要注意)?
13、什么是bean的自动装配?
14、什么是bean装配?
15、Spring如何处理线程并发问题?
16、Spring框架中的单例bean是线程安全的吗?
17、Spring实例化bean方式的几种方式
18、单例bean的优势
19、解释Spring支持的几种bean的作用域
20、配置Bean有哪几种方式?
21、什么是Spring beans?
九、Spring IOC
1、你知道Spring的哪些扩展点,在什么时候调用?
2、IOC容器的加载过程:
3、BeanFactory 和FactoryBean有什么区别?
4、BeanFactory 和 ApplicationContext有什么区别?
5、BeanDefinition的作用
6、BeanFactory的作用
7、紧耦合和松耦合有什么区别?
8、什么是Spring的依赖注入(DI)?IOC和DI的区别是什么
9、Spring IoC 的实现机制是什么?
10、IOC的优点是什么?
11、控制反转(IoC)有什么作用
12、什么是Spring IOC 容器?有什么作用?
十、Spring Framework
1、Spring的优缺点是什么?
2、谈谈你对Spring的理解
转发本文+关注+私信【全家桶】就可以领取Spring全家桶面试完整答案解析了!
对了,小伙伴们面试中有遇到过奇葩问题吗?有的话,欢迎发在评论区跟大伙交流哦!
相关推荐
- jQuery VS AngularJS 你更钟爱哪个?
-
在这一次的Web开发教程中,我会尽力解答有关于jQuery和AngularJS的两个非常常见的问题,即jQuery和AngularJS之间的区别是什么?也就是说jQueryVSAngularJS?...
- Jquery实时校验,指定长度的「负小数」,小数位未满末尾补0
-
在可以输入【负小数】的输入框获取到焦点时,移除千位分隔符,在输入数据时,实时校验输入内容是否正确,失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。HTML代码...
- 如何在pbootCMS前台调用自定义表单?pbootCMS自定义调用代码示例
-
要在pbootCMS前台调用自定义表单,您需要在后台创建表单并为其添加字段,然后在前台模板文件中添加相关代码,如提交按钮和表单验证代码。您还可以自定义表单数据的存储位置、添加文件上传字段、日期选择器、...
- 编程技巧:Jquery实时验证,指定长度的「负小数」
-
为了保障【负小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【负小数】的方法。HTML代码<inputtype="text"class="forc...
- 一篇文章带你用jquery mobile设计颜色拾取器
-
【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...
- 编程技巧:Jquery实时验证,指定长度的「正小数」
-
为了保障【正小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【正小数】的方法。HTML做成方法<inputtype="text"class="fo...
- jquery.validate检查数组全部验证
-
问题:html中有多个name[],每个参数都要进行验证是否为空,这个时候直接用required:true话,不能全部验证,只要这个数组中有一个有值就可以通过的。解决方法使用addmethod...
- Vue进阶(幺叁肆):npm查看包版本信息
-
第一种方式npmviewjqueryversions这种方式可以查看npm服务器上所有的...
- layui中使用lay-verify进行条件校验
-
一、layui的校验很简单,主要有以下步骤:1.在form表单内加上class="layui-form"2.在提交按钮上加上lay-submit3.在想要校验的标签,加上lay-...
- jQuery是什么?如何使用? jquery是什么功能组件
-
jQuery于2006年1月由JohnResig在BarCampNYC首次发布。它目前由TimmyWilson领导,并由一组开发人员维护。jQuery是一个JavaScript库,它简化了客户...
- django框架的表单form的理解和用法-9
-
表单呈现...
- jquery对上传文件的检测判断 jquery实现文件上传
-
总体思路:在前端使用jquery对上传文件做部分初步的判断,验证通过的文件利用ajaxFileUpload上传到服务器端,并将文件的存储路径保存到数据库。<asp:FileUploadI...
- Nodejs之MEAN栈开发(四)-- form验证及图片上传
-
这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能。开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R...
- 大数据开发基础之JAVA jquery 大数据java实战
-
上一篇我们讲解了JAVAscript的基础知识、特点及基本语法以及组成及基本用途,本期就给大家带来了JAVAweb的第二个知识点jquery,大数据开发基础之JAVAjquery,这是本篇文章的主要...
- 推荐四个开源的jQuery可视化表单设计器
-
jquery开源在线表单拖拉设计器formBuilder(推荐)jQueryformBuilder是一个开源的WEB在线html表单设计器,开发人员可以通过拖拉实现一个可视化的表单。支持表单常用控件...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)