Spring是java企业级应用程序的开源开发框架,广泛应用于企业中。作为解决企业应用开发复杂性的轻量级Java开发框架,图灵java培训班总结了Spring常见的面试问题和答案,希望能帮助正在面试的java程序员。
Java开发Spring常见面试题。
分享Spring常见面试题及答案:
什么是spring?
Spring是java企业级应用程序的开源开发框架。Spring主要用于开发Java应用程序,但一些扩展是针对构建J2EE平台的web应用程序。spring框架的目标是简化Java企业级应用程序的开发,并通过POJO编程模型促进良好的编程习惯。
二、使用Spring框架的好处?
轻量Spring轻,基本版约2MB。
控制反转:Spring通过控制反转实现松散耦合,对象给予依赖,而不是创建或寻找依赖对象。
面向切面的编程(AOP):Spring支持面向切面的编程,并将应用业务逻辑与系统服务分开。
容器:Spring包含和管理应用程序中对象的生命周期和配置。
MVC框架:SpringWEB框架是精心设计的框架,是WEB框架的良好替代品。
事务管理:Spring提供可扩展到本地事务至全局事务(JTA)的连续事务管理接口。
异常处理:Spring提供方便的API将与特定技术相关的异常(如JDBC、HibernateorJDO抛出的)转化为一致的unchecked异常。
三、Spring组成模块有哪些?
Spring框架的基本模块:
Coremodule。
beanmodule。
Contextmodule。
Expressionlanguagemodule。
JDBCmodule。
ORMmodule。
OXMmodule。
Javamessagingservicemodule。
Transactionmodule。
Webmodule。
Web-Servletmodule。
Web-Strutsmodule。
Web-Portletmodule。
四、核心容器模块有哪些?
Beanfactory提供spring框架的基本功能,是任何基于spring的应用的核心。spring框架基于此模块,使spring成为容器。
五、XMLBeanFactory。
最常用的是org.springframework.beans.factory.xml.xmlbeanfactory,它根据XML文件中的定义加载beans。该容器从XML文件中读取配置元数据,并使用它创建一个完全配置的系统或应用程序。
什么是AOP模块?
AOP模块用于发送给我们的Spring应用程序开发面向部分,许多支持由AOP联盟提供,以确保Spring和其他AOP框架的共性。该模块将元数据编程引入Spring。
七、解释JDBC抽象和DAO模块。
通过使用JDBC抽象和DAO模块,可以保证数据库代码的简单性,避免数据库资源错误关闭造成的问题。它为不同数据库的错误信息提供了统一的异常访问层。它还利用SpringAOP模块为Spring应用程序中的对象提供事务管理服务。
八、解释对象/关系映射集成模块。
Spring通过提供ORM模块,支持我们在直接JDBC上使用对象/关系映射(ORM)工具,Spring支持Hiberate、JDO、iBATISSQLMaps等集成主流ORM框架。Spring的事务管理也支持上述所有ORM框架和JDBC。
九、解释WEB模块。
Spring的WEB模块是建立在applicationcontext模块的基础上,提供适合web应用的上下文。该模块还面向web的任务,如将多个文件上传请求和程序级请求参数绑定到您的业务对象的透明处理。它还支持Jakartastruts。
十、Spring配置文件。
Spring配置文件为XML文件,包含类信息,描述了如何配置它们以及如何相互调用。
IOC的优势是什么?
IOC可以依靠注入来最大限度地减少应用程序的代码量。它使应用程序易于测试,单元测试不再需要单个案例和JNDI搜索机制。松散耦合可以以最小的成本和最小的侵入性实现。IOC容器支持饥饿和懒惰的加载服务。
十二、实现ApplicationContext。
FilesystemXmlaplicationcontext:该容器从XML文件中加载beans的定义,XMLbean配置文件的全路径名必须提供给其结构函数。ClaspathXmlaplicationcontext:该容器还从XML文件中加载beans的定义。在这里,您需要正确设置claspath,因为该容器将在claspath中找到bean配置。WebXmlapplicationcontext:该容器加载XML文件,定义WEB应用程序的所有bean。
十三、什么是Spring依赖注入?
依赖注入是IOC的一个方面,有很多解释。这个概念意味着你只需要描述它是如何创建的,而不是创建一个对象。您不直接在代码中组装您的组件和服务,但您需要在配置文件中描述哪些组件需要哪些服务,然后组装一个容器(IOC容器)。
十四、有哪些不同类型的IOC依赖注入?
结构器依赖注入:结构器依赖注入通过容器触发一种类型的结构器来实现,这种类型有一系列的参数,每个参数代表一种对其他类别的依赖。
Seter方法注入:Seter方法注入是指容器通过调用非参考结构器或非参考工厂方法实例化bean后,调用bean的Seter方法,即实现基于seter的依赖注入。
十五、Spring容器配置元数据
Spring容器提供配置元数据。
XML配置文件;基于注释的配置;基于java的配置。
十六、定义类的作用域
当定义一个在spring中时,我们也可以向bean声明一个功能域。它可以通过bean定义中的scope属性来定义。例如,当spring需要每次生产一个新的bean实例时,bean的scope属性被指定为prototype。另一方面,每次使用bean时,必须返回同一个例子,bean的scope属性必须设置为singleton。
什么是Spring内部bean?
当一个bean只被用作另一个bean的属性时,它可以被声明为内部bean。为了定义inerbean,元素可以在基于XML的Spring配置元数据中或元素中使用。内部bean通常是匿名的,他们的scope通常是prototype。
如何在Spring中注入java集合?
Spring提供以下集合。