我们面试的时候 ,经常会被问这种到问题:Spring中bean的循环依赖怎么解决?Spring中bean的加载过程?spring相关的问题一直是大厂面试常问到的一个问题,也是一直困扰这我们,不知道从哪里下手,今天举例分析大厂的一些spring相关的面试真题。和分享我学习spring相关问题所整理的一些知识点。
spring相关问题大厂的面试真题(含解析):
1.谈谈你对 spring IOC 和 DI 的理解,它们有什么区别?
I o C :I n v e r s e o f C o n t r o l 反 转 控 制 的 概 念 , 就 是将 原 本 在 程 序 中 手 动 创 建 U s e r S e r v i c e 对 象 的 控制 权 , 交 由 S p r i n g 框 架 管 理 , 简 单 说 , 就 是 创建 U s e r S e r v i c e 对 象 控 制 权 被 反 转 到 了 S p r i n g框 架
D I:D e p e n d e n c y I n j e c t i o n 依 赖 注 入 , 在S p r i n g 框 架 负 责 创 建 B e a n 对 象 时 , 动 态 的 将 依赖 对 象 注 入 到 B e a n 组 件
I o C 和 D I 的 区 别 ?I o C 控 制 反 转 , 指 将 对 象 的 创 建 权 , 反 转 到S p r i n g 容 器 , D I 依 赖 注 入 , 指 S p r i n g 创 建对 象 的 过 程 中 , 将 对 象 依 赖 属 性 通 过 配 置 进 行 注入
2.BeanFactory 接口和 ApplicationContext 接口有什么区别 ?
-① A p p l i c a t i o n C o n t e x t 接 口 继 承 B e a n F a c t o r y接 口 , S p r i n g 核 心 工 厂 是B e a n F a c t o r y , B e a n F a c t o r y 采 取 延 迟 加 载 , 第一 次 g e t B e a n 时 才 会 初 始 化 B e a n ,A p p l i c a t i o n C o n t e x t 是 会 在 加 载 配 置 文 件 时 初始 化 B e a n。
② A p p l i c a t i o n C o n t e x t 是 对 B e a n F a c t o r y 扩展 , 它 可 以 进 行 国 际 化 处 理 、 事 件 传 递 和 b e a n自 动 装 配 以 及 各 种 不 同 应 用 层 的 C o n t e x t 实 现
开 发 中 基 本 都 在 使 用 A p p l i c a t i o n C o n t e x t , w e b项 目 使 用 W e b A p p l i c a t i o n C o n t e x t , 很 少 用 到B e a n F a c t o r y
3.spring 配置 bean 实例化有哪些方式?
1) 使 用 类 构 造 器 实 例 化 (默 认 无 参 数 )
2) 使 用 静 态 工 厂 方 法 实 例 化 (简 单 工 厂 模 式 )
3) 使 用 实 例 工 厂 方 法 实 例 化 (工 厂 方 法 模 式 )
4.什么是 AOP,AOP 的作用是什么?
面 向 切 面 编 程 ( A O P) 提 供 另 外 一 种 角 度 来 思 考程 序 结 构 , 通 过 这 种 方 式 弥 补 了 面 向 对 象 编 程( O O P) 的 不 足 , 除 了 类 ( c l a s s e s) 以 外 , A O P提 供 了 切 面 。切 面 对 关 注 点 进 行 模 块 化 , 例 如 横切 多 个 类 型 和 对 象 的 事 务 管 理
S p r i n g 的 一 个 关 键 的 组 件 就 是 A O P 框 架 , 可 以自 由 选 择 是 否 使 用 A O P 提 供 声 明 式 企 业 服 务 ,特 别 是 为 了 替 代 E J B 声 明 式 服 务 。最 重 要 的 服 务是 声 明 性 事 务 管 理 , 这 个 服 务 建 立 在 S p r i n g 的抽 象 事 物 管 理 之 上 。允 许 用 户 实 现 自 定 义 切 面 ,用 A O P 来 完 善 O O P 的 使 用 ,可 以 把 S p r i n g A O P看 作 是 对 S p r i n g 的 一 种 增 强
5.Spring 的核心类有哪些,各有什么作用?
- B e a n F a c t o r y:产 生 一 个 新 的 实 例 , 可 以 实 现 单 例 模 式
- B e a n W r a p p e r:提 供 统 一 的 g e t 及 s e t 方 法
- A p p l i c a t i o n C o n t e x t :提 供 框 架 的 实 现 , 包 括B e a n F a c t o r y 的 所 有 功 能
6.Spring 里面如何配置数据库驱动?
使 用 ”o r g . s p r i n g f r a m e w o r k . j d b c . d a t a s o u r c e . D r i v e r M a n a g e r D a t a S o u r c e” 数 据 源 来 配 置 数 据 库 驱动 。示 例 如 下 :
o r g . h s q l d b . j d b c D r i v e r j d b c : h s q l d b : d b / a p p f u s e a b c a b c
7.简单的说一下 spring 的生命周期?
8.请介绍一下 Spring 框架中 Bean 的生命周期和作用域
9.Bean 注入属性有哪几种方式?
10.Spring 里面 applicationContext.xml 文件能不能改成其他文件名?
11.Spring 里面如何定义 hibernate mapping?
12.Spring 如何处理线程并发问题?
13.为什么要有事物传播行为?
14.介 绍 一 下 S p r i n g 的 事 物 管 理
15.解释一下 Spring AOP 里面的几个名词
16.通知有哪些类型?
只是整理的一部分spring相关的面试真题,一部分解析需要的可以私信我【面试】获取.
我整理的spring学习笔记:
像spring这种知识点我们不能盲目的学习,首先我们得有一套学习路线,我总结了一套spring的学习思维导图,今天通过我整理的Spring学习路线.xmind给大家分析spring需要掌握的一些核心知识点。
需要整个spring学习导图和核心知识点的朋友可以关注小编+转发文章+私信【核心知识点】获取。
spring的特点:
- 轻量级
- 控制反转
- 面向切面
- 容器
- 框架集合
Spring 的核心组件,常用模块,主要包和spring的常用注解:
常用模块:
- 核心容器
- spring上下文
- springAOP
- springDAO
- springORM
- spring web 模块
- spring mvc 框架
Spring IOC 原理:
- 概念:
Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化
Bean 并建立 Bean 之间的依赖关系。Spring 的 IoC 容器在完成这些底层工作的基础上,还提供
了 Bean 实例缓存、生命周期管理、 Bean 实例代理、事件发布、资源装载等高级服务。
- Spring 容器高层视图
- OC 容器实现
Spring Bean 作用域:
- singleton:单例模式(多线程下不安全)
- prototype:原型模式每次使用时创建
- Request:一次 request一个实例
- session
- global Session
Spring APO 原理
Spring MVC 原理
Spring Boot 原理
- JPA 原理
- Mybatis 缓存
- Tomcat 架构
最后:
除了上面的spring想关核心知识点外,同时还分享更多精选整理的学习资料,包含(Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!)