没有合适的资源?快使用搜索试试~ 我知道了~
首页25个经典的Spring面试问答
25个经典的Spring面试问答
需积分: 32 54 下载量 182 浏览量
更新于2023-06-01
评论
收藏 79KB DOCX 举报
什么是Spring框架Spring框架有哪些主要模块 使用Spring框架能带来哪些好处 什么是控制反转IOC什么是依赖注入 请解释下Spring框架中的IoC BeanFactory和ApplicationContext有什么区别 Spring有几种配置方式 如何用基于XML配置的方式配置Spring 如何用基于Java配置的方式配置Spring 怎样用注解的方式配置Spring 请解释Spring Bean的生命周期 Spring Bean的作用域之间有什么区别 什么是Spring inner beans Spring框架中的单例Beans是线程安全的么 请举例说明如何在Spring中注入一个Java Collection 如何向Spring Bean中注入一个JavautilProperties 请解释Spring Bean的自动装配 请解释自动装配模式的区别 如何开启基于注解的自动装配 请举例解释Required annotation 请举例解释Autowired注解 请举例说明Qualifier注解 构造方法注入和设值注入有什么区别 Spring框架中有哪些不同类型的事件 FileSystemResource和ClassPathResource有何区别 Spring 框架中都用到了哪些设计模式
资源详情
资源评论
资源推荐
25
个经典的
Spring
面试问答
分类:
开发 、编程开发、首页精华 暂无人评论 来源:
分享到:更多
欢迎分享开发问题到码农社区!将问题帖子私信@ 程序员俱乐部 ,将有近 60000 人为您
解答!
本人收集了一些在大家在面试时被经常问及的关于 的主要问题,这些问题有可能
在你下次面试时就会被问到。对于本文中未提及的 其他模块,我会单独分享面试
的问题和答案。
欢迎大家向我推荐你在面试过程中遇到关于 的问题。我会把大家推荐的问题添加
到下面的 常用面试题清单中供大家参考。
问题清单:
什么是
框架?
框架有哪些主要模块?
使用
框架有什么好处?
什么是控制反转( )?什么是依赖注入?
请解释下
中的
?
!
和
" #
有什么区别?
$ 将
配置到你的应用中共有几种方法?
% 什么基于
&'(
的配置?
) 什么基
*
的配置?
+ 怎样用注解的方式配置
?
描述
的生命周期?
描述
中各种
的范围?
什么是
的嵌入
,- ?
框架中的单例
,
是否是线程安全的?
请举例说明如何用
注入一个
*
的集合类?
请举例说明如何在
的
中注入一个
.*/"0- ?
$ 请解释
的
的自动生成原理?
% 请辨析自动生成
之间模块的区别?
) 如何开启基于基于注解的自动写入?
+ 请举例说明 123/4
注解?
请举例说明 1/4
注解?
请举例说明 15/"6
注解?
请说明构造器注入和
-
方法注入之间的区别?
框架中不同类型
*
有什么区别?
"!-2-/
和
"--072-/
有何区别?
请列举
框架中用了哪些设计模式?
1、什么是 Spring 框架?Spring 框架有哪些主要模块?
框架是一个为 * 应用程序的开发提供了综合、广泛的基础性支持的 * 平台。
帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。
框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成
框架,不必担心 是如何在后台进行工作的。
框架至今已集成了 多个模块。这些模块主要被分如下图所示的核心容器、数据
访问8集成9、:,、0(面向切面编程)、工具、消息和测试模块。
更多信息: 框架教程 。
2、使用 Spring 框架能带来哪些好处?
下面列举了一些使用 框架带来的主要好处:
Dependency Injection(DI)方法使得构造器和 *- 文件中的
依赖关系一目了然。
与 ; 容器相比较, 容器更加趋向于轻量级。这样一来 容器在有限的内存和
0< 资源的情况下进行应用程序的开发和发布就变得十分有利。
并没有闭门造车, 利用了已有的技术比如 2' 框架、" 框架、
;;、5/= 和 >?@,以及其他视图技术。
框架是按照模块的形式来组织的。由包和类的编号就可以看出其所属的模块,
开发者仅仅需要选用他们需要的模块即可。
要测试一项用 开发的应用程序十分简单,因为测试相关的环境代码都已经囊括
在框架中了。更加简单的是,利用 * 形式的 0 类,可以很方便的利用依
赖注入来写入测试数据。
的 :, 框架亦是一个精心设计的 :,'
框架 ,为开发者们在 , 框架
的选择上提供了一个除了主流框架比如 /-、过度设计的、不流行 , 框架的以外
的有力选项。
提供了一个便捷的事务管理接口,适用于小型的本地事物处理(比如在单 >
的环境下)和复杂的共同事物处理(比如利用 @ 的复杂 > 环境)。
3、什么是控制反转(IOC)?什么是依赖注入?
控制反转是应用于软件工程领域中的,在运行时被装配器对象来绑定耦合对象的一种编程
技巧,对象之间耦合关系在编译时通常是未知的。在传统的编程方式中,业务逻辑的流程
是由应用程序中的早已被设定好关联关系的对象来决定的。在使用控制反转的情况下,业
务逻辑的流程是由对象关系图来决定的,该对象关系图由装配器负责实例化,这种实现方
式还可以将对象之间的关联关系的定义抽象化。而绑定的过程是通过“依赖注入”实现的。
控制反转是一种以给予应用程序中目标组件更多控制为目的设计范式,并在我们的实际工
作中起到了有效的作用。
依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情况下,将其他对象所依赖的
功能对象实例化的模式。这就需要一种机制用来激活相应的组件以提供特定的功能,所以
依赖注入是控制反转的基础。否则如果在组件不受框架控制的情况下,框架又怎么知道要
创建哪个组件?
在 * 中依然注入有以下三种实现方式:
构造器注入
方法注入
接口注入
4、请解释下 Spring 框架中的 IoC?
中的 org.springframework.beans包和 org.springframework.context 包构成了
Spring 框架 IoC 容器的基础。
!接口提供了一个先进的配置机制,使得任何类型的对象的配置成为可能。
ApplicationContex 接口对 BeanFactory(是一个子接口)进行了扩展,在 !
的基础上添加了其他功能,比如与 的 0 更容易集成,也提供了处理 --
-/ 的机制(用于国际化)、事件传播以及应用层的特别配置,比如针对 :, 应用
的 :," #。
org.springframework.beans.factory.BeanFactory是 容器的具体实现,用
来包装和管理前面提到的各种 ,。 ! 接口是 容器的核心接口。
5、BeanFactory 和 ApplicationContext 有什么区别?
!可以理解为含有 , 集合的工厂类。 !包含了种 , 的定
义,以便在接收到客户端请求时将对应的 , 实例化。
! 还能在实例化对象的时生成协作类之间的关系。此举将 , 自身与 ,
客户端的配置中解放出来。 ! 还包含了 , 生命周期的控制,调用客户端的
初始化方法("=74-)和销毁方法(4-/ 74-)。
从表面上看," # 如同 ,A ! 一样具有 , 定义、, 关联
关系的设置,根据请求分发 , 的功能。但 " # 在此基础上还提供了
其他的功能。
提供了支持国际化的文本消息
统一的资源文件读取方式
已在监听器中注册的 , 的事件
以下是三种较常见的 " #实现方式:
、"--07&"" #:从 "--7 的 &'( 配置文件中读取上下文,
并生成上下文定义。应用程序上下文从程序环境变量中取得。
ApplicationContext context = new ClassPathXmlApplicationContext(“bean.xml”);
、"!-&"" #:由文件系统中的 &'( 配置文件读取上下文。
ApplicationContext context = new
FileSystemXmlApplicationContext(“bean.xml”);
、&":," #:由 :, 应用的 &'( 文件读取上下文。
6、Spring 有几种配置方式?
将 配置到应用开发中有以下三种方式:
基于 &'( 的配置
基于注解的配置
基于 * 的配置
7、如何用基于 XML 配置的方式配置 Spring?
在 框架中,依赖和服务需要在专门的配置文件来实现,我常用的 &'( 格式的配置
文件。这些配置文件的格式通常用<beans>开头,然后一系列的 bean 定义和专门的应用配置选项
组成。
&'( 配置的主要目的时候是使所有的 组件都可以用 #" 文件的形式来进行
配置。这意味着不会出现其他的 配置类型(比如声明的方式或基于 *"--
的
配置方式)
的 &'( 配置方式是使用被 命名空间的所支持的一系列的 &'( 标签来实现
的。 有以下主要的命名空间: #、,-、.4, 、#、、* 和 -。
<beans>
<!-- JSON Support -->
<bean name="viewResolver"
class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
<bean name="jsonTemplate"
class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
<bean id="restTemplate"
class="org.springframework.web.client.RestTemplate"/>
</beans>
下面这个 ,#" 仅仅配置了 DispatcherServlet,这件最简单的配置便能满足应用
程序配置运行时组件的需求。
剩余24页未读,继续阅读
Lance_xu_
- 粉丝: 33
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0