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