吃透互联网必问的100道Spring全家桶高频真题,金九银十稳了
yuyutoo 2024-10-26 16:09 3 浏览 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全家桶面试完整答案解析了!
对了,小伙伴们面试中有遇到过奇葩问题吗?有的话,欢迎发在评论区跟大伙交流哦!
相关推荐
- 如何在HTML中使用JavaScript:从基础到高级的全面指南!
-
“这里是云端源想IT,帮你...
- 推荐9个Github上热门的CSS开源框架
-
大家好,我是Echa。...
- 硬核!知网首篇被引过万的论文讲了啥?作者什么来头?
-
整理|袁小华近日,知网首篇被引量破万的中文论文及其作者备受关注。知网中心网站数据显示,截至2021年7月23日,由华南师范大学教授温忠麟等人发表在《心理学报》2004年05期上的学术论文“中介效应检验...
- 为什么我推荐使用JSX开发Vue3_为什么用vue不用jquery
-
在很长的一段时间中,Vue官方都以简单上手作为其推广的重点。这确实给Vue带来了非常大的用户量,尤其是最追求需求开发效率,往往不那么在意工程代码质量的国内中小企业中,Vue占据的份额极速增长...
-
- 【干货】一文详解html和css,前端开发需要哪些技术?
-
网站开发简介...
-
2025-02-20 18:34 yuyutoo
- 分享几个css实用技巧_cssli
-
本篇将介绍几个css小技巧,目录如下:自定义引用标签的符号重置所有标签样式...
- 如何在浏览器中运行 .NET_怎么用浏览器运行代码
-
概述:...
- 前端-干货分享:更牛逼的CSS管理方法-层(CSS Layers)
-
使用CSS最困难的部分之一是处理CSS的权重值,它可以决定到底哪条规则会最终被应用,尤其是如果你想在Bootstrap这样的框架中覆盖其已有样式,更加显得麻烦。不过随着CSS层的引入,这一...
-
- HTML 基础标签库_html标签基本结构
-
HTML标题HTML标题(Heading)是通过-...
-
2025-02-20 18:34 yuyutoo
- 前端css面试20道常见考题_高级前端css面试题
-
1.请解释一下CSS3的flexbox(弹性盒布局模型),以及适用场景?display:flex;在父元素设置,子元素受弹性盒影响,默认排成一行,如果超出一行,按比例压缩flex:1;子元素设置...
- vue引入外部js文件并使用_vue3 引入外部js
-
要在Vue中引入外部的JavaScript文件,可以使用以下几种方法:1.使用``标签引入外部的JavaScript文件。在Vue的HTML模板中,可以直接使用``标签来引入外部的JavaScrip...
- 网页设计得懂css的规范_html+css网页设计
-
在初级的前端工作人员,刚入职的时候,可能在学习前端技术,写代码不是否那么的规范,而在工作中,命名的规范的尤为重要,它直接与你的代码质量挂钩。网上也受很多,但比较杂乱,在加上每年的命名都会发生一变化。...
- Google在Chrome中引入HTML 5.1标记
-
虽然负责制定Web标准的WorldWideWebConsortium(W3C)尚未宣布HTML5正式推荐规格,而Google已经迁移到了HTML5.1。即将发布的Chrome38将引入H...
- HTML DOM 引用( ) 对象_html中如何引用js
-
引用对象引用对象定义了一个同内联元素的HTML引用。标签定义短的引用。元素经常在引用的内容周围添加引号。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)