我们面试的时候 ,经常会被问这种到问题:Spring中bean的循环依赖怎么解决?Spring中bean的加载过程?spring相关的问题一直是大厂面试常问到的一个问题,也是一直困扰这我们,不知道从哪里下手,今天举例分析大厂的一些spring相关的面试真题。和分享我学习spring相关问题所整理的一些知识点。

京东java二面: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

京东java二面:spring相关问题被虐哭了_生命周期_02


3.spring 配置 bean 实例化有哪些方式?

1) 使 用 类 构 造 器 实 例 化 (默 认 无 参 数 )

京东java二面:spring相关问题被虐哭了_实例化_03


2) 使 用 静 态 工 厂 方 法 实 例 化 (简 单 工 厂 模 式 )

京东java二面:spring相关问题被虐哭了_生命周期_04


3) 使 用 实 例 工 厂 方 法 实 例 化 (工 厂 方 法 模 式 )

京东java二面:spring相关问题被虐哭了_生命周期_05


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学习导图和核心知识点的朋友可以关注小编+转发文章+私信【核心知识点】获取。

京东java二面:spring相关问题被虐哭了_实例化_06


spring的特点:

  • 轻量级
  • 控制反转
  • 面向切面
  • 容器
  • 框架集合

京东java二面:spring相关问题被虐哭了_生命周期_07


Spring 的核心组件,常用模块,主要包和spring的常用注解:

常用模块:

  • 核心容器
  • spring上下文
  • springAOP
  • springDAO
  • springORM
  • spring web 模块
  • spring mvc 框架

京东java二面:spring相关问题被虐哭了_生命周期_08


Spring IOC 原理:

  • 概念:

Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化

Bean 并建立 Bean 之间的依赖关系。Spring 的 IoC 容器在完成这些底层工作的基础上,还提供

了 Bean 实例缓存、生命周期管理、 Bean 实例代理、事件发布、资源装载等高级服务。

  • Spring 容器高层视图
  • OC 容器实现

京东java二面:spring相关问题被虐哭了_生命周期_09


Spring Bean 作用域:

  • singleton:单例模式(多线程下不安全)
  • prototype:原型模式每次使用时创建
  • Request:一次 request一个实例
  • session
  • global Session

Spring APO 原理

京东java二面:spring相关问题被虐哭了_实例化_10


Spring MVC 原理

京东java二面:spring相关问题被虐哭了_生命周期_11


Spring Boot 原理

京东java二面:spring相关问题被虐哭了_spring_12


  • JPA 原理
  • Mybatis 缓存
  • Tomcat 架构

最后:

除了上面的spring想关核心知识点外,同时还分享更多精选整理的学习资料,包含(Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!)