百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

吃透互联网必问的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表单设计器,开发人员可以通过拖拉实现一个可视化的表单。支持表单常用控件...

取消回复欢迎 发表评论: