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

吃透互联网必问的100道Spring全家桶高频真题,金九银十稳了

yuyutoo 2024-10-26 16:09 6 浏览 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全家桶面试完整答案解析了!

对了,小伙伴们面试中有遇到过奇葩问题吗?有的话,欢迎发在评论区跟大伙交流哦!

相关推荐

深度解读Spring框架的核心原理

深度解读Spring框架的核心原理在Java开发的世界里,提到Spring框架,就像提起一位久经沙场的老将,它几乎成了企业级应用开发的代名词。那么,这个被无数开发者膜拜的框架究竟有何独特之处?今天,我...

「Spring认证」Spring 框架概述

Spring是最流行的企业Java应用程序开发框架。全球数以百万计的开发人员使用SpringFramework来创建高性能、易于测试和可重用的代码。Spring框架是一个开源的Java...

学习Spring框架 这一篇就够了

1.spring概述1.1Spring是什么(理解)...

Spring框架双核解析:IOC与AOP的本质与实战

#Spring核心#IOC容器#AOP编程#Java框架设计...

Spring Boot与传统Spring框架的对比:探索Java开发的新境界

SpringBoot与传统Spring框架的对比:探索Java开发的新境界在Java生态系统中,Spring框架无疑是一个里程碑式的存在。从最初的简单依赖注入容器,到如今覆盖企业级开发方方面面的庞大...

Spring MVC框架源码深度剖析:从入门到精通

SpringMVC框架源码深度剖析:从入门到精通SpringMVC框架简介SpringMVC作为Spring框架的一部分,为构建Web应用程序提供了强大且灵活的支持。它遵循MVC(Model-V...

Spring框架入门

一.spring是什么?Spring是分层...

程序员必知必会技能之Spring框架基础——面向切面编程!

面向切面编程AOP(AspectOrientedProgramming)与OOP(ObjectOrientedProgramming,面向对象编程)相辅相成。AOP提供了与OOP不同的抽象软件结...

Spring Security安全框架深度解读:为你的应用穿上“钢铁铠甲”

SpringSecurity安全框架深度解读:为你的应用穿上“钢铁铠甲”在现代网络世界里,保护我们的应用程序免受各种威胁攻击至关重要。而在这个过程中,SpringSecurity框架无疑是我们最可...

Spring框架的设计哲学与实现:打造轻量级的企业级Java应用

Spring框架的设计哲学与实现:打造轻量级的企业级Java应用Spring框架自2003年诞生以来,已成为企业级Java应用开发的代名词。它不仅仅是一个框架,更是一种设计理念和哲学的体现。本文将带你...

Spring框架深度解析:从核心原理到底层实现的全方位避坑指南

一、Spring框架核心概念解析1.控制反转(IoC)与依赖注入(DI)Spring的核心思想是通过IoC容器管理对象的生命周期和依赖关系。传统开发中,对象通过new主动创建依赖对象,导致高耦合;而S...

Java框架 —— Spring简介

简介一般来说,Spring指的是SpringFramework,它提供了很多功能,例如:控制反转(IOC)、依赖注入...

Spring 框架概述,模块划分

Spring框架以控制反转(InversionofControl,IoC)和面向切面编程(Aspect-OrientedProgramming,AOP)为核心,旨在简化企业级应用开发,使开发者...

spring框架怎么实现依赖注入?

依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到Bean组件中,其实现方式通常有两种,一种是属性setter方法注入,另一种是构造方法注入。具体介绍如下:●属性set...

Spring框架详解

  Spring是一种开放源码框架,旨在解决企业应用程序开发的复杂性。一个主要优点就是它的分层体系结构,层次结构让你可以选择要用的组件,同时也为J2EE应用程序开发提供了集成框架。  Spring特征...

取消回复欢迎 发表评论: