2021年Spring面试题70道

文章目录


2021年Spring面试题70道

前言

作为应届生,处于找工作中。今年2月份刚刚整理出来的Spring面试题,时间比较赶就没有按照Spring的模块比如aop、ioc那些分类排序了。总而言之,顺序比较乱,希望大家耐着性子 看。如果实在介意,评论告知,我会视情况作修改的。另外如果大家觉得我找的答案不够清晰,欢迎私信或者评论只出,我看到都会去修改的!


面试题系列文章传送门

2021年后端开发面试题整理合集

Spring面试题内容

1. 谈谈你对Spring的理解?

Spring框架是一个轻量级的开源框架,是核心容器、数据访问与集成、AOP、Web、消息、测试六个模块的集成,主要是为了简化企业级应用的后台开发,降低耦合性。平时接触到最多的还是IoC和AOP两个特性。IoC指的是控制反转,把对象的创建和依赖关系的维护交给Spring容器去管理。Spring通过工厂模式、反射机制等技术管理对象的作用域和生命周期。AoP一般称为面向切面编程,是面向对象的一种补充,将程序中独立于其他功能的方法抽取出来,使Java开发模块化,仅需专注于主业务即可

2. Spring的特点是什么?

轻 量、控 制 反 转、面 向 切 面 的 编 程(AOP)、容 器、MVC 框 架、事 务 管 理、异 常 处 理

3. Spring的优缺点是什么?

  • 优点
  1. 方便解耦,简化开发
  2. 可以将对象的创建和依赖关系的维护交给Spring管理。
  3. 提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
  4. 声明式事务的支持
  5. 只需要通过配置就可以完成对事务的管理,而无需手动编程。
  6. 可以通过注解方便的测试程序。
  7. 内部提供了对各种优秀框架的直接支持,方便集成各种优秀框架。
  8. 降低 JavaEE API 的使用难度
  • 缺点
  1. Spring明明一个很轻量级的框架,却给人感觉大而全
  2. Spring依赖反射,反射影响性能
  3. 使用门槛过高,入门Spring需要较长时间

4. Spring由哪些模块组成?

Spring 总共有 20 个模块, 由 1300 多个不同的文件构成。 而这些组件被分别整合在核心容器 、 AOP和设备支持 、数据访问与集成 、 Web、 消息 、 测试 6 个模块中

5. 详细讲解一下核心容器(spring context应用上下文) 模块

这是基本的 Spring 模块,提供 spring 框架的基础功能, BeanFactory 是任何以 spring 为基础的应用的核心.它使 Spring 成为一个容器 。BeanFactory是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从真正的应用代码中分离。最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory ,它根据XML文件中的定义加载beans。该容器从XML 文件读取配置元数据并用它去创建一个完全配置的系统或应用。

6. 解释AOP模块

AOP 模块用于 Spring 应用做面向切面的开发,很多支持由 AOP 联盟提供,这样就确保了 Spring和其他 AOP 框架的共通性。AOP模块将元数据编程引入Spring。

7. 解释JDBC抽象和DAO模块

通过使用JDBC抽象和 DAO 模块,保证数据库代码的简洁,并能避免数据库资源错误关闭导致的问题, 它在各种不同的数据库的错误信息之上,提供了一个统一的异常访问层。它还利用 Spring 的 AOP 模块给 Spring 应用中的对象提供事务管理服务。

8. 解释对象/关系映射集成(ORM)模块

  1. Spring 通过提供ORM模块,支持我们直接在JDBC 之上使用一个对象/关系映射(ORM)工具。
  2. Spring 支持集成主流的 ORM 框架。
  3. Spring 的事务管理同样支持主流的 ORM 框架及 JDBC。

9. 解释WEB模块

Spring 的 WEB 模块是构建在 application context 模块基础之上,提供一个适合 web 应用的上下文。

10. Spring配置文件

Spring 配置文件是个XML文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用。

11. 什么是Spring IoC 容器。

控制反转即IoC ,它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现组件对象的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。Spring IOC 负责创建对象,管理对象,装配对象,配置对象,并且管理这些对象的整个生命周期。

12. 控制反转(IoC)有什么作用

  1. 管理对象的创建和依赖关系的维护。
  2. 方便解耦,由容器去维护具体的对象
  3. 托管了类的产生过程。

13.控制反转(IoC)的优点是什么?

  1. 把应用的代码量降到最低。
  2. 它使应用容易测试,单元测试不再需要单例和JNDI查找机制。
  3. 最小的代价和最小的侵入性使松散耦合得以实现。
  4. IoC容器支持加载服务时的饿汉式初始化和懒加载。

14. Spring IoC 的实现机制

Spring 中的 IoC 的实现原理就是工厂模式加反射机制。

15. Spring 的 IoC支持哪些功能

  1. 依赖注入
  2. 依赖检查
  3. 自动装配
  4. 支持集合
  5. 指定初始化方法和销毁方法
  6. 支持回调某些方法

16. ApplicationContext 通常的实现是什么?

  1. FileSystemXmlApplicationContext容器 :此容器从一个XML 文件中加载 beans 的定义,XML Bean配置文件的全路径名必须提供给它的构造函数 。
  2. ClassPathXmlApplicationContext容器:此容器从一个 XML 文件中加载 beans 的定义,需要正确设置 classpath 。因为这个容器将在 classpath 里面找 bean 的配置。
  3. WebXmlApplicationContext容器:此容器加载一个 XML 文件,此文件定义了一个 WEB 应用的所有 bean。

17. BeanFactory和 Application contexts 有什么区别?

BeanFactory:是Spring里面最低层的接口,提供了最简单的容器的功能,而且只提供了实例化对象和拿对象的功能;
ApplicationContext:是应用上下文,继承BeanFactory接口,它是Spring的一个更高级的容器,提供了更多的有用的功能,这些功能包括;
国际化
访问资源,如URL和文件
载入多个有继承关系的上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层
消息发送和响应机制
AOP
两者的区别在于装载beans时的区别:
BeanFactory在启动的时候不会去实例化Bean,当Spring应用中有从容器拿Bean的时候才会去实例化;
ApplicationContext在启动的时候就把所有的Bean全部实例化了,它还可以通过配置来实现Bean的延迟实例化,所以实际开发中推荐使用Application contexts。

18. 一个 Spring 的应用看起来像什么?

  1. 一个定义了一些功能的接口 。
  2. Spring AOP
  3. <
  • 52
    点赞
  • 573
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个巨大的怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值