spring面试总结.docx

上传人:cn****1 文档编号:542252828 上传时间:2023-06-12 格式:DOCX 页数:17 大小:29.41KB
返回 下载 相关 举报
spring面试总结.docx_第1页
第1页 / 共17页
spring面试总结.docx_第2页
第2页 / 共17页
spring面试总结.docx_第3页
第3页 / 共17页
spring面试总结.docx_第4页
第4页 / 共17页
spring面试总结.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《spring面试总结.docx》由会员分享,可在线阅读,更多相关《spring面试总结.docx(17页珍藏版)》请在金锄头文库上搜索。

1、1.什么是Spring?Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。2.Spring有哪些优点? 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB。 控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。 面向切面编程(AOP):Spring支持面向切面编程,同

2、时把应用的业务逻辑与系统的服务分离开来。 容器:Spring包含并管理应用程序对象的配置及生命周期。 MVC框架:Spring的web框架是一个设计优良的web MVC框架,很好的取代了一些web框架。 事务管理:Spring对下至本地业务上至全局业务(JAT)提供了统一的事务管理接口。 异常处理:Spring提供一个方便的API将特定技术的异常(由JDBC, Hibernate, 或JDO抛出)转化为一致的、Unchecked异常。3.Spring框架有哪些模块?Spring框架的基本模块如下所示: Core module Bean module Context module Express

3、ion Language module JDBC module ORM module OXM module Java Messaging Service(JMS) module Transaction module Web module Web-Servlet module Web-Struts module Web-Portlet module4.解释核心容器(应用上下文)模块这是Spring的基本模块,它提供了Spring框架的基本功能。BeanFactory 是所有Spring应用的核心。Spring框架是建立在这个模块之上的,这也使得Spring成为一个容器。5.BeanFactory

4、 BeanFactory 实例BeanFactory是工厂模式的一种实现,它使用控制反转将应用的配置和依赖与实际的应用代码分离开来。最常用的BeanFactory实现是XmlBeanFactory类。6.XmlBeanFactory最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory,它根据XML文件中定义的内容加载beans。该容器从XML文件中读取配置元数据,并用它来创建一个完备的系统或应用。7.解释AOP模块AOP模块用来开发Spring应用程序中具有切面性质的部分。该模块的大部分服务由AOP Aliance提供,这就保证了

5、Spring框架和其他AOP框架之间的互操作性。另外,该模块将元数据编程引入到了Spring。8.解释抽象JDBC和DAO模块通过使用抽象JDBC和DAO模块保证了与数据库连接代码的整洁与简单,同时避免了由于未能关闭数据库资源引起的问题。它在多种数据库服务器的错误信息之上提供了一个很重要的异常层。它还利用Spring的AOP模块为Spring应用程序中的对象提供事务管理服务。9.解释对象/关系映射集成模块Spring通过提供ORM模块在JDBC的基础上支持对象关系映射工具。这样的支持使得Spring可以集成主流的ORM框架,包括Hibernate, JDO, 及iBATIS SQL Maps。

6、Spring的事务管理可以同时支持以上某种框架和JDBC。10.解释web模块Spring的web模块建立在应用上下文(application context)模块之上,提供了一个适合基于web应用程序的上下文环境。该模块还支持了几个面向web的任务,如透明的处理多文件上传请求及将请求参数同业务对象绑定起来。11.解释Spring MVC模块Spring提供MVC框架构建web应用程序。Spring可以很轻松的同其他MVC框架结合,但Spring的MVC是个更好的选择,因为它通过控制反转将控制逻辑和业务对象完全分离开来。12.Spring的配置文件Spring的配置文件是一个XML文件,文件包

7、含了类信息并描述了这些类是如何配置和互相调用的。13.Spring IoC容器是什么?Spring IOC负责创建对象、管理对象(通过依赖注入)、整合对象、配置对象以及管理这些对象的生命周期。14.IOC有什么优点?IOC或依赖注入减少了应用程序的代码量。它使得应用程序的测试很简单,因为在单元测试中不再需要单例或JNDI查找机制。简单的实现以及较少的干扰机制使得松耦合得以实现。IOC容器支持勤性单例及延迟加载服务。15.应用上下文是如何实现的?FileSystemXmlApplicationContext容器加载XML文件中beans的定义。XML Bean配置文件的完整路径必须传递给构造器。

8、FileSystemXmlApplicationContext容器也加载XML文件中beans的定义。注意,你需要正确的设置CLASSPATH,因为该容器会在CLASSPATH中查看bean的XML配置文件。WebXmlApplicationContext:该容器加载xml文件,这些文件定义了web应用中所有的beans。16.Bean Factory和ApplicationContext有什么区别?ApplicationContext提供了一种解决文档信息的方法,一种加载文件资源的方式(如图片),他们可以向监听他们的beans发送消息。另外,容器或者容器中beans的操作,这些必须以bean

9、工厂的编程方式处理的操作可以在应用上下文中以声明的方式处理。应用上下文实现了MessageSource,该接口用于获取本地消息,实际的实现是可选的。17.Spring应用程序看起来像什么? 一个定义功能的接口 实现包括属性,setter和getter方法,功能等 Spring AOP Spring的XML配置文件 使用该功能的客户端编程依赖注入18.Spring中的依赖注入是什么?依赖注入作为控制反转(IOC)的一个层面,可以有多种解释方式。在这个概念中,你不用创建对象而只需要描述如何创建它们。你不必通过代码直接的将组件和服务连接在一起,而是通过配置文件说明哪些组件需要什么服务。之后IOC容器

10、负责衔接。19.有哪些不同类型的IOC(依赖注入)? 构造器依赖注入:构造器依赖注入在容器触发构造器的时候完成,该构造器有一系列的参数,每个参数代表注入的对象。 Setter方法依赖注入:首先容器会触发一个无参构造函数或无参静态工厂方法实例化对象,之后容器调用bean中的setter方法完成Setter方法依赖注入。20.你推荐哪种依赖注入?构造器依赖注入还是Setter方法依赖注入?你可以同时使用两种方式的依赖注入,最好的选择是使用构造器参数实现强制依赖注入,使用setter方法实现可选的依赖关系。Spring Beans21.什么是Spring Beans?Spring Beans是构成S

11、pring应用核心的Java对象。这些对象由Spring IOC容器实例化、组装、管理。这些对象通过容器中配置的元数据创建,例如,使用XML文件中定义的创建。在Spring中创建的beans都是单例的beans。在bean标签中有一个属性为”singleton”,如果设为true,该bean是单例的,如果设为false,该bean是原型bean。Singleton属性默认设置为true。因此,spring框架中所有的bean都默认为单例bean。22.Spring Bean中定义了什么内容?Spring Bean中定义了所有的配置元数据,这些配置信息告知容器如何创建它,它的生命周期是什么以及它

12、的依赖关系。23.如何向Spring 容器提供配置元数据?有三种方式向Spring 容器提供元数据: XML配置文件 基于注解配置 基于Java的配置24.你如何定义bean的作用域?在Spring中创建一个bean的时候,我们可以声明它的作用域。只需要在bean定义的时候通过scope属性定义即可。例如,当Spring需要产生每次一个新的bean实例时,应该声明bean的scope属性为prototype。如果每次你希望Spring返回一个实例,应该声明bean的scope属性为singleton。25.说一下Spring中支持的bean作用域Spring框架支持如下五种不同的作用域: si

13、ngleton:在Spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在。 prototype:一个bean可以定义多个实例。 request:每次HTTP请求都会创建一个新的Bean。该作用域仅适用于WebApplicationContext环境。 session:一个HTTP Session定义一个Bean。该作用域仅适用于WebApplicationContext环境. globalSession:同一个全局HTTP Session定义一个Bean。该作用域同样仅适用于WebApplicationContext环境.bean默认的scope属性是singleton。

14、26.Spring框架中单例beans是线程安全的吗?不是,Spring框架中的单例beans不是线程安全的。27.解释Spring框架中bean的生命周期 Spring容器读取XML文件中bean的定义并实例化bean。 Spring根据bean的定义设置属性值。 如果该Bean实现了BeanNameAware接口,Spring将bean的id传递给setBeanName()方法。 如果该Bean实现了BeanFactoryAware接口,Spring将beanfactory传递给setBeanFactory()方法。 如果任何bean BeanPostProcessors 和该bean相关

15、,Spring调用postProcessBeforeInitialization()方法。 如果该Bean实现了InitializingBean接口,调用Bean中的afterPropertiesSet方法。如果bean有初始化函数声明,调用相应的初始化方法。 如果任何bean BeanPostProcessors 和该bean相关,调用postProcessAfterInitialization()方法。 如果该bean实现了DisposableBean,调用destroy()方法。28.哪些是最重要的bean生命周期方法?能重写它们吗?有两个重要的bean生命周期方法。第一个是setup方法,该方法在容器加载bean的时候被调用。第二个是teardown方法,该方法在bean从容器中移除的时候调用。bean标签有两个重要的属性(init-method 和 destroy-method),你可以通过这两个属性定义自己的初始化方法和析构方法。Spring也有相应的注解:PostConstruct 和 PreDestroy。29.什么是Spring的内部bean?当一个bean被用作另一个bean的属性时,这个bean可以被声明为内部bean。在基于XML的配置

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号