当前位置: 首页 > article >正文

Spring面试题 02

目录✅ 一、核心概念与对比Q1-Q21. ApplicationContext 和 BeanFactory 有什么区别2. Spring Boot、Spring MVC 和 Spring 有什么区别✅ 二、容器与生命周期Q3-Q53. 介绍一下 Spring 容器的启动流程。4. 如何实现一个 IOC 容器5. 描述一下 Spring Bean 的生命周期✅ 三、设计模式与组件Q6-Q86. Spring 用到了哪些设计模式请举例说明。7. 介绍一下 Spring MVC 的工作流程。8. Spring MVC 的主要组件有哪些✅ 四、Spring Boot 特性Q9- Q109. 如何理解 Spring Boot 中的 Starter10. 说一说你知道的 Spring Boot 中常用注解及其底层实现。 面试加分技巧串联作答示例这份清单涵盖了Spring 框架的核心原理、容器机制、MVC 流程、Boot 特性及设计思想是中高级 Java 开发面试的“必考组合拳”。下面我将为你整理每道题的高分回答话术语言精炼、逻辑清晰、重点突出适合直接用于面试表达。✅ 一、核心概念与对比Q1-Q21. ApplicationContext 和 BeanFactory 有什么区别标准对比法维度BeanFactoryApplicationContext定位Spring 最基础容器接口BeanFactory 的子接口功能更强大加载方式懒加载首次获取时才初始化 Bean预加载启动时初始化所有单例 Bean功能扩展仅支持基本 DI支持 AOP、事件发布、国际化、资源访问等使用场景资源受限环境如嵌入式设备企业级应用主流选择 补充“我们日常开发用的ClassPathXmlApplicationContext、AnnotationConfigApplicationContext都是 ApplicationContext 的实现类。”2. Spring Boot、Spring MVC 和 Spring 有什么区别层级关系 职责划分Spring→ 核心框架提供 IOC、AOP、事务管理等底层能力。Spring MVC→ 基于 Spring 的 Web 层框架负责请求分发、视图渲染、参数绑定等。Spring Boot→ 不是新技术而是“脚手架”“自动配置”简化 Spring 应用的搭建和部署。 类比Spring 汽车发动机 底盘Spring MVC 方向盘 仪表盘Web 控制层Spring Boot 整车出厂套装一键启动开箱即用✅ 总结“Spring 是根基MVC 是 Web 模块Boot 是加速器——三者协同工作构成现代 Java Web 开发基石。”✅ 二、容器与生命周期Q3-Q53. 介绍一下 Spring 容器的启动流程。四步走战略创建容器对象如new ClassPathXmlApplicationContext(applicationContext.xml)加载配置文件 / 扫描注解解析 XML 或扫描Component,Configuration等注解生成 BeanDefinition实例化 依赖注入根据 BeanDefinition 创建 Bean 实例并通过反射完成属性注入DI初始化回调 注册后置处理器执行InitializingBean.afterPropertiesSet()、PostConstruct、BeanPostProcessor 等 关键点“整个过程由AbstractApplicationContext.refresh()方法驱动包含 12 个步骤核心是‘加载→实例化→注入→初始化’。”4. 如何实现一个 IOC 容器手写简易版思路展示理解深度// 1. 定义注解 interface Component {} interface Autowired {} // 2. 扫描包路径收集带 Component 的类 ListClass? classes scanPackages(com.example); // 3. 实例化并缓存到 MapString, Object beanMap for (Class? clazz : classes) { Object instance clazz.newInstance(); beanMap.put(clazz.getSimpleName().toLowerCase(), instance); } // 4. 处理 Autowired 字段注入 for (Object bean : beanMap.values()) { for (Field field : bean.getClass().getDeclaredFields()) { if (field.isAnnotationPresent(Autowired.class)) { field.setAccessible(true); String name field.getType().getSimpleName().toLowerCase(); field.set(bean, beanMap.get(name)); } } }✅ 总结“IOC 本质就是‘反射 映射表’——通过扫描、实例化、注入三步把对象管理权从程序员交给容器。”5. 描述一下 Spring Bean 的生命周期七阶段记忆法实例化Instantiation→ 调用构造函数创建对象属性赋值Populate→ 注入依赖setter/构造器/AutowiredAware 接口回调→ 如BeanNameAware,ApplicationContextAware前置处理BeanPostProcessor.postProcessBeforeInitialization初始化Initialization→PostConstruct/InitializingBean.afterPropertiesSet()/ init-method后置处理BeanPostProcessor.postProcessAfterInitialization→ AOP 代理在此处生成销毁Destruction→PreDestroy/DisposableBean.destroy()/ destroy-method 图解口诀“生实例化→ 养赋值→ 认亲Aware→ 前插前置→ 成年初始化→ 后插后置/AOP→ 死销毁”✅ 三、设计模式与组件Q6-Q86. Spring 用到了哪些设计模式请举例说明。五大经典模式工厂模式→BeanFactory,ApplicationContext创建 Bean单例模式→ 默认 Bean 作用域为 singleton代理模式→ AOP 动态代理JDK/CGLIB事务、日志等功能实现模板方法模式→JdbcTemplate,RestTemplate封装重复逻辑观察者模式→ 事件驱动模型ApplicationEventPublisherListener 加分项“还有策略模式不同 ValidationStrategy、适配器模式HandlerAdapter、责任链模式FilterChain等。”7. 介绍一下 Spring MVC 的工作流程。九步请求旅程用户发送请求 →DispatcherServlet前端控制器Dispatcher 查询HandlerMapping→ 找到对应 Controller 方法Dispatcher 调用HandlerAdapter→ 执行 Controller 方法Controller 返回ModelAndView或ResponseBodyDispatcher 交给ViewResolver→ 解析视图名ViewResolver 返回具体 View 对象如 JSP、ThymeleafDispatcher 渲染视图 → 填充模型数据响应返回给用户可选拦截器、异常处理器全程参与️ 图示关键词“前端控制器 → 映射器 → 适配器 → 控制器 → 视图解析器 → 视图渲染”8. Spring MVC 的主要组件有哪些六大核心组件DispatcherServlet→ 中央调度器所有请求入口HandlerMapping→ 请求映射到 HandlerController 方法HandlerAdapter→ 适配不同类型的 Handler如注解方法、旧式 ControllerController→ 业务逻辑处理器RestController / ControllerViewResolver→ 视图名称 → 实际视图对象JSP/Thymeleaf/FreemarkerView→ 最终渲染页面或 JSON 数据 补充“还有LocaleResolver,ThemeResolver,MultipartResolver等辅助组件。”✅ 四、Spring Boot 特性Q9- Q109. 如何理解 Spring Boot 中的 Starter依赖打包 自动配置双引擎Starter 是什么一组预定义的依赖集合 自动配置类让你“零配置”快速集成第三方库。命名规范官方 starterspring-boot-starter-web,spring-boot-starter-data-jpa第三方 startermybatis-spring-boot-starter,redisson-spring-boot-starter工作原理引入 starter → 自动传递相关依赖如 web starter 包含 Tomcat、Jackson、Spring MVC触发EnableAutoConfiguration→ 扫描META-INF/spring.factories中的自动配置类条件装配ConditionalOnClass,ConditionalOnMissingBean→ 按需启用功能✅ 总结“Starter 依赖炸弹 自动配置开关 —— 让开发者专注业务不用操心环境搭建。”10. 说一说你知道的 Spring Boot 中常用注解及其底层实现。高频注解 原理拆解注解作用底层实现SpringBootApplication主启动类标识SpringBootConfigurationEnableAutoConfigurationComponentScanEnableAutoConfiguration开启自动配置导入AutoConfigurationImportSelector→ 读取spring.factoriesConditionalOnXXX条件装配如ConditionalOnClass(RedisTemplate.class)→ 类存在才生效ConfigurationProperties绑定配置文件到 Java 对象通过Binder工具类反射赋值RestControllerRESTful 控制器ControllerResponseBodyValue注入配置值通过PropertySourcesPlaceholderConfigurer解析占位符 深入一点“spring.factories文件位于META-INF/目录下存储了所有自动配置类的全限定名Spring Boot 启动时会加载它们。” 面试加分技巧串联作答示例如果面试官问“你对 Spring 整体架构怎么理解”你可以这样回答“Spring 的核心是IOC 容器Q1, Q2, Q9, Q10它通过反射和依赖注入管理 Bean 生命周期。在 Web 层面Spring MVCQ5, Q6基于 DispatcherServlet 实现请求分发背后大量使用设计模式Q3。而Spring BootQ4, Q7, Q8则通过 Starter 和自动配置极大简化了这些组件的使用门槛让我们能‘开箱即用’地构建微服务。”这样回答既有广度又有深度展现系统性思维✅建议背诵顺序先掌握 Q1-Q3基础概念→ 再理解 Q4-Q5容器机制→ 最后攻克 Q6-Q10组件与 Boot。祝你面试顺利拿下 Offer

相关文章:

Spring面试题 02

目录 ✅ 一、核心概念与对比(Q1-Q2) 1. ApplicationContext 和 BeanFactory 有什么区别? 2. Spring Boot、Spring MVC 和 Spring 有什么区别? ✅ 二、容器与生命周期(Q3-Q5) 3. 介绍一下 Spring 容器的…...

家长实测|3家少儿机器人编程机构真实体验

最近和几位宝妈聊天,发现大家都不约而同地在给孩子选编程课。市面上的机构实在太多,看广告个个都说自己好,真报名又怕踩坑。我们几个妈妈一合计,决定把各自报过的、试听过的机构拿出来晒一晒,互相取经。我家孩子刚满7岁…...

OpenClaw的心跳30分钟才跳一次?Clawith:15秒感知世界,Agent终于有了自主意识

前言 呵呵,最近AI Agent这个概念是真的火。你可能也听说过OpenClaw🦞——一个让个人拥有AI助手的开源项目。它的Heartbeat机制号称是Agent的"心跳",但说实话,30分钟跳一次的心跳,那还叫心跳吗? …...

第十章 微积分:贯穿多领域的统一思维与落地价值

第十章 微积分:贯穿多领域的统一思维与落地价值 专栏「微积分入门与行业展开」收官篇|承接第九章《微积分与数据分析:趋势预测和最优决策的工具》 一、系列回顾:从公式到思维的九层跃迁 过去九章,我们共同走完了一条从数学公式→行业工具→认知范式的完整路径。微积分不…...

【漏油绳公司】元宇宙白皮书:技术革新×应用实践·未来蓝图

执行摘要 漏油绳行业作为工业安全与环境保护的关键防线,其战略地位在能源、化工、数据中心等核心领域日益凸显。随着全球对安全生产与绿色发展的要求趋严,行业正面临从传统被动防护向主动智能预警的深刻变革。然而,技术迭代缓慢、专业人才断…...

监控系统问题解决方案:画面优化与系统设置详解

显示器问题解决方案► 画面抖动原因与解决显示器显示画面抖动通常是由于显示器的刷新率设置过低造成的。要解决这一问题,您可以进入“显示属性”并点击“设置”,接着选择“高级”,再进入“监视器”选项,将刷新率调整为75Hz&#x…...

个人项目复习-短链Day01

考点1:注册功能要求功能需求:使用手机号注册,且已经注册的手机号不能重复注册,密码不能使用简单的md5加密;用户上传头像需要用到文件存储。安全需求:高并发下账号的唯一性注册邮箱或手机号验证码不能被恶意…...

openclaw dashboard实现分析

OpenClaw Dashboard / Control UI 前端实现框架与原理 本文基于 openclaw 仓库源码与官方文档,对 Gateway Dashboard(Control UI) 的前端实现做一次整体梳理,方便在 MW4Agent 中对标实现类似的 Web 控制台。1. 整体架构概览 定位&…...

Day 42 通道注意力

浙大疏锦行 CNN 有很多卷积核,输出很多通道(特征图)有的通道很重要(比如边缘、纹理)有的通道没用通道注意力就是:自动给每个通道算一个权重,重要的通道权重变大,不重要的变小 SE 通…...

2026年亲测:企业健身房规划实战案例分享

在2026年的当下,我们团队在为企业客户规划员工健身空间时,普遍面临一个核心困境:方案设计与最终落地效果严重脱节。许多企业投入预算采购了高端健身器材,却因前期缺乏专业的空间规划,导致器械布局不合理、动线混乱、使…...

《探索升级!AI应用架构师助力企业数字化转型的策略探索升级》

探索升级!AI 应用架构师助力企业数字化转型的策略探索升级 引言 背景介绍 在当今数字化浪潮汹涌澎湃的时代,企业面临着前所未有的挑战与机遇。数字化转型已不再是一种选择,而是企业生存和发展的必由之路。随着人工智能(AI&#xf…...

视觉自动对焦(Z 轴运动 + 相机拍照 + 清晰度计算) 的核心程序

这是视觉自动对焦(Z 轴运动 + 相机拍照 + 清晰度计算) 的核心程序,基于ACS 运动控制器实现,用于精密视觉设备(显微镜 / 相机 / 激光设备)自动找到最清晰的画面位置。 我用通俗中文 + 分层拆解,让你完全看懂逻辑。 一、整体功能一句话总结 控制 Z 轴匀速扫动一段距离,…...

100页PPT2026数字孪生智慧化工园区解决方案

2026年推进5GAI大模型智慧工业园区建设实践路径?【智慧方案文库】汇总了一套《2026AI大模型智慧工业园区建设实践路径指南》,立足“十五五”数字经济与新质生产力发展导向,以AI大模型为核心引擎,融合数字孪生、5G、物联网等技术&a…...

Android 11--横竖屏旋转时背景色异常?

最近遇到一个问题:相册打开一张图片,横竖屏旋转时,有的图片旋转时四周背景色是白色,有的则是黑色的。Why? 难不成背景色与图片相关? -- 11.0的问题,10.0并无 对WMS模块了解一些的人应该都知道&#xff0…...

PowerLine

Powerline 是一款比较酷炫的状态栏工具,可以美化 终端 和 vim界面,由 python 开发,目前仅支持 python2.X,由于 python2 和 python3 互不兼容,安装前要了解清楚使用的Linux /Ubuntu /debian 的Python 版本信息: CentOS 7 : Kali / debian CentOS 系列安装比较简单: 字…...

Synergy服务端显示异常解决办法

第一个问题是服务端不能成功运行,一直显示正在启动: 错误代码: [2020-10-26T19:24:05] INFO: starting new process [2020-10-26T19:24:05] INFO: drag and drop enabled synergys.exe: no configuration available [2020-10-26T19:24:06] ER…...

车流量计数、不同车型统计算法

车流量计数统计算法是目前安防领域重要的应用方向,根据实时或历史视频流,实时统计不同类型的车流量 车流统计双向_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV14q4y1g7Tx/ 比如: 小客车,客货两用车,出租车&…...

Management By Objectives (MBO) - 目标管理

Management By Objectives {MBO} - 目标管理ReferencesManagement by objectives (MBO), also known as management by results (MBR), was first popularized by Peter Drucker in his 1954 book The Practice of Management. 目标管理 (MBO),也称为结果管理 (MBR)…...

博客必读事项

我是小懒猿,人狠话不多,直接上才艺。 本人编写文章来源于1.文档(面试总结-懂得都懂-嘿嘿嘿)2.博客(csdn,掘金,博客园,个人博客等等)3.公众号(持续关注各大优秀公众号)4.视频(B站,网课…...

CarPlay 有线连接流程

一、引言1.1 目的此文档记录CarPlay 开发中有线连接开发部分,详细介绍CarPlay有线连接的流程,希望可以给开发CarPlay小伙伴一些帮助,无线连接后续再梳理。二、架构设计2.1 架构图注:此图翻译自苹果官方的开发帮助文档身份认证 &am…...

java毕业设计——基于JSP+sqlserver的课程教学网站设计与实现(毕业论文+程序源码)——教学网站

基于JSPsqlserver的课程教学网站设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于JSPsqlserver的课程教学网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的…...

java毕业设计——基于JSP+sqlserver的科研处管理信息系统设计与实现(毕业论文+程序源码)——科研处管理信息系统

基于JSPsqlserver的科研处管理信息系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于JSPsqlserver的科研处管理信息系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩…...

使用slack-cleaner,打造清爽的Slack工作环境

使用slack-cleaner,打造清爽的Slack工作环境 【免费下载链接】slack-cleaner :speech_balloon: Bulk delete messages and files on Slack 项目地址: https://gitcode.com/gh_mirrors/sl/slack-cleaner 在现代企业中,Slack是团队协作的重要工具。…...

O3DE引擎全面解析:从基础到高级的开源3D创作平台完全指南

O3DE引擎全面解析:从基础到高级的开源3D创作平台完全指南 【免费下载链接】o3de Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and hi…...

U8g2常见问题解答:解决OLED/LCD显示开发中的痛点难题

U8g2常见问题解答:解决OLED/LCD显示开发中的痛点难题 【免费下载链接】u8g2 U8glib library for monochrome displays, version 2 项目地址: https://gitcode.com/gh_mirrors/u8/u8g2 U8g2是一款功能强大的单色显示器库,广泛应用于OLED和LCD显示…...

推荐一款开源利器:Linux Router

推荐一款开源利器:Linux Router 【免费下载链接】linux-router Set Linux as router in one command. Support Internet sharing, redsocks, Wifi hotspot, IPv6. Can also be used for routing VM/containers 🛰️ (也欢迎关注B站 https://space.bilibi…...

gRPC协议在TOMs中的应用:跨平台服务通信的高性能实现

gRPC协议在TOMs中的应用:跨平台服务通信的高性能实现 【免费下载链接】TOMs TOMs is a fully open-source, high-performance, systematic, plugin-oriented, and scenario-agnostic general-purpose development framework. 项目地址: https://gitcode.com/gh_m…...

代码截图的高级技巧:gh_mirrors/car/carbon的隐藏功能

代码截图的高级技巧:gh_mirrors/car/carbon的隐藏功能 【免费下载链接】carbon 项目地址: https://gitcode.com/gh_mirrors/car/carbon gh_mirrors/car/carbon是一款功能强大的代码截图工具,能够帮助开发者轻松创建美观、专业的代码图片。无论是…...

pydata-book bitly使用数据:用户行为数据的统计与分析

pydata-book bitly使用数据:用户行为数据的统计与分析 【免费下载链接】pydata-book wesm/pydata-book: 这是Wes McKinney编写的《Python for Data Analysis》一书的源代码仓库,书中涵盖了使用pandas、NumPy和其他相关库进行数据处理和分析的实践案例和技…...

Used-Trading-Platform2开源项目安装与使用指南

Used-Trading-Platform2开源项目安装与使用指南 【免费下载链接】Used-Trading-Platform2 基于Spring Boot的校园二手交易网站 项目地址: https://gitcode.com/gh_mirrors/us/Used-Trading-Platform2 1. 项目目录结构及介绍 Used-Trading-Platform2 是一个基于Spring Bo…...