2022年spring面试题 .pdf
《2022年spring面试题 .pdf》由会员分享,可在线阅读,更多相关《2022年spring面试题 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.什么是 Spring?Spring是一个开源的Java EE开发框架。 Spring框架的核心功能可以应用在任何Java 应用程序中, 但对 Java EE 平台上的 Web 应用程序有更好的扩展性。Spring框架的目标是使得 Java EE 应用程序的开发更加简捷,通过使用POJO 为基础的编程模型促进良好的编程风格。2.Spring有哪些优点?轻量级: Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB 。控制反转 (IOC) :Spring使用 控制反转技术 实现了松耦合。 依赖被注入到对象,而不是创建或寻找依赖对象。面向切面编程 (AOP)
2、: Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。容器: Spring包含并管理应用程序对象的配置及生命周期。MVC框架: Spring的 web框架是一个设计优良的web MVC 框架 ,很好的取代了一些web 框架。事务管理: Spring对下至本地业务上至全局业务(JAT)提供了统一的事务管理接口。异常处理: Spring提供一个方便的API 将特定技术的异常(由 JDBC, Hibernate, 或 JDO 抛出)转化为一致的、Unchecked异常。3.Spring框架有哪些模块?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
3、- - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - Spring框架的基本模块如下所示:Core module Bean module Context module Expression Language module JDBC module ORM module OXM module Java Messaging Service(JMS) module Transaction module Web module Web-Servlet module Web-Struts module Web-Portle
4、t module 4.解释核心容器 ( 应用上下文 )模块这是 Spring的基本模块, 它提供了 Spring框架的基本功能。BeanFactory 是所有 Spring应用的核心。 Spring框架是建立在这个模块之上的,这也使得Spring成为一个容器。5.BeanFactory BeanFactory 实例BeanFactory是工厂模式的一种实现,它使用控制反转将应用的配置和依赖与实际的应用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - -
5、 - - - - - 代码分离开来。最常用的BeanFactory实现是 XmlBeanFactory类。6.XmlBeanFactory最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory,它根据XML文件中定义的内容加载beans 。该容器从XML 文件中读取配置元数据,并用它来创建一个完备的系统或应用。7.解释 AOP 模块AOP 模块用来开发Spring应用程序中具有切面性质的部分。该模块的大部分服务由AOP Aliance提供, 这就保证了Spring框架和其他AOP 框架之间的互操作性。另外,该模块将元数据编程引入到了
6、Spring 。8.解释抽象JDBC 和 DAO 模块通过使用 抽象 JDBC 和 DAO 模块 保证了与数据库连接代码的整洁与简单,同时避免了由于未能关闭数据库资源引起的问题。它在多种数据库服务器的错误信息之上提供了一个很重要的异常层。它还利用Spring的 AOP 模块为 Spring应用程序中的对象提供事务管理服务。9.解释对象 /关系映射集成模块Spring通过提供ORM模块在JDBC 的基础上支持对象关系映射工具。这样的支持使得Spring可以集成主流的ORM 框架, 包括 Hibernate, JDO, 及 iBATIS SQL Maps。Spring的事务管理可以同时支持以上某种
7、框架和JDBC。10. 解释 web 模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - Spring的 web 模块 建立在应用上下文(application context)模块之上,提供了一个适合基于 web 应用程序的上下文环境。该模块还支持了几个面向web 的任务, 如透明的处理多文件上传请求及将请求参数同业务对象绑定起来。11. 解释 Spring MVC模块Spring提供 MVC 框架构建web 应用程序。 S
8、pring可以很轻松的同其他MVC 框架结合,但 Spring的 MVC 是个更好的选择,因为它通过控制反转将控制逻辑和业务对象完全分离开来。12.Spring的配置文件Spring的配置文件是一个XML 文件,文件包含了类信息并描述了这些类是如何配置和互相调用的。13.Spring IoC容器是什么?Spring IOC 负责创建对象、管理对象(通过依赖注入 )、整合对象、配置对象以及管理这些对象的生命周期。14.IOC有什么优点?IOC 或依赖注入减少了应用程序的代码量。它使得应用程序的测试很简单,因为在单元测试中不再需要单例或JNDI 查找机制。简单的实现以及较少的干扰机制使得松耦合得以
9、实现。IOC 容器支持勤性单例及延迟加载服务。15. 应用上下文是如何实现的?FileSystemXmlApplicationContext容器加载 XML 文件中 beans 的定义。 XML Bean配置文件的完整路径必须传递给构造器。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - FileSystemXmlApplicationContext容器也加载XML 文件中 beans的定义。注意,你需要正确的设置CLASSPA
10、TH ,因为该容器会在CLASSPATH 中查看 bean 的 XML 配置文件。WebXmlApplicationContext:该容器加载xml 文件,这些文件定义了web 应用中所有的 beans 。16.Bean Factory和 ApplicationContext有什么区别?ApplicationContext提供了一种解决文档信息的方法,一种加载文件资源的方式(如图片 ),他们可以向监听他们的beans发送消息。另外,容器或者容器中beans 的操作,这些必须以 bean 工厂的编程方式处理的操作可以在应用上下文中以声明的方式处理。应用上下文实现了 MessageSource,该
11、接口用于获取本地消息,实际的实现是可选的。17.Spring应用程序看起来像什么?一个定义功能的接口实现包括属性,setter和 getter方法,功能等Spring AOP Spring的 XML 配置文件使用该功能的客户端编程依赖注入18.Spring中的依赖注入是什么?依赖注入 作为控制反转(IOC) 的一个层面,可以有多种解释方式。在这个概念中,你不用创建对象而只需要描述如何创建它们。你不必通过代码直接的将组件和服务连接在一起,而是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
12、第 5 页,共 18 页 - - - - - - - - - 通过配置文件说明哪些组件需要什么服务。之后IOC 容器负责衔接。19. 有哪些不同类型的IOC( 依赖注入 )?构造器依赖注入: 构造器依赖注入在容器触发构造器的时候完成,该构造器有一系列的参数,每个参数代表注入的对象。Setter方法依赖注入: 首先容器会触发一个无参构造函数或无参静态工厂方法实例化对象,之后容器调用bean 中的 setter方法完成Setter 方法依赖注入。20. 你推荐哪种依赖注入?构造器依赖注入还是Setter方法依赖注入?你可以同时使用两种方式的依赖注入,最好的选择是使用构造器参数实现强制依赖注入,使用
13、 setter方法实现可选的依赖关系。Spring Beans21. 什么是 Spring Beans?Spring Beans是构成 Spring应用核心的Java 对象。这些对象由Spring IOC容器实例化、组装、 管理。 这些对象通过容器中配置的元数据创建,例如, 使用 XML 文件中定义的创建。在 Spring中创建的 beans都是单例的beans 。 在 bean标签中有一个属性为”singleton” ,如果设为true ,该 bean 是单例的,如果设为false ,该 bean 是原型 bean 。Singleton属性默认设置为true 。因此, spring框架中所有
14、的bean 都默认为单例bean 。22.Spring Bean中定义了什么内容?Spring Bean中定义了所有的配置元数据,这些配置信息告知容器如何创建它,它的生命周期是什么以及它的依赖关系。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 23. 如何向 Spring 容器提供配置元数据?有三种方式向Spring 容器提供元数据: XML 配置文件基于注解配置基于 Java 的配置24. 你如何定义bean的作用域?在
15、Spring中创建一个bean 的时候,我们可以声明它的作用域。只需要在bean 定义的时候通过 scope 属性定义即可。例如,当Spring需要产生每次一个新的bean实例时,应该声明bean 的 scope 属性为 prototype。如果每次你希望Spring返回一个实例, 应该声明 bean 的 scope 属性为 singleton。25. 说一下 Spring中支持的bean作用域Spring框架支持如下五种不同的作用域:singleton:在 Spring IOC容器中仅存在一个Bean 实例, Bean 以单实例的方式存在。prototype:一个 bean 可以定义多个实例
16、。request: 每 次HTTP请 求 都 会 创 建 一 个 新 的Bean 。 该 作 用 域 仅 适 用 于WebApplicationContext环境。session : 一个 HTTP Session定义一个 Bean 。 该作用域仅适用于WebApplicationContext环境 . globalSession:同一个全局HTTP Session定义一个Bean 。该作用域同样仅适用于名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - -
17、 - - - - - - WebApplicationContext环境 . bean 默认的 scope 属性是 singleton。26.Spring框架中单例beans是线程安全的吗?不是, Spring框架中的单例beans 不是线程安全的。27. 解释 Spring框架中 bean的生命周期Spring容器读取 XML 文件中 bean 的定义并实例化bean 。Spring根据 bean 的定义设置属性值。如果该 Bean 实现了 BeanNameAware接口,Spring将 bean 的 id 传递给 setBeanName()方法。如 果 该Bean实 现 了BeanFact
18、oryAware接 口 , Spring将beanfactory传 递 给setBeanFactory()方法。如果任 何bean BeanPostProcessors 和该bean相关, Spring调用postProcessBeforeInitialization()方法。如果该 Bean 实现了 InitializingBean接口,调用Bean 中的 afterPropertiesSet方法。如果 bean 有初始化函数声明,调用相应的初始化方法。如果任何bean BeanPostProcessors 和该bean相关,调用postProcessAfterInitialization(
19、)方法。如果该 bean 实现了 DisposableBean,调用 destroy() 方法。28. 哪些是最重要的bean生命周期方法?能重写它们吗?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - 有两个重要的bean 生命周期方法。 第一个是setup方法,该方法在容器加载bean 的时候被调用。第二个是teardown方法,该方法在bean 从容器中移除的时候调用。bean 标签有两个重要的属性(init-method
20、 和 destroy-method),你可以通过这两个属性定义自己的初始化方法和析构方法。Spring也有相应的注解:PostConstruct 和PreDestroy。29. 什么是 Spring的内部 bean ?当一个 bean 被用作另一个bean 的属性时,这个bean 可以被声明为内部bean 。在基于XML 的配置元数据中, 可以通过把元素定义在或元素内部实现定义内部bean 。 内部 bean总是匿名的并且它们的scope 总是 prototype。30. 如何在 Spring中注入 Java 集合类?Spring提供如下几种类型的集合配置元素 :list 元素用来注入一系列的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年spring面试题 2022 spring 试题
限制150内