Spring相关面试题Word格式文档下载.docx
- 文档编号:16693618
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:12
- 大小:271.13KB
Spring相关面试题Word格式文档下载.docx
《Spring相关面试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Spring相关面试题Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
4.核心容器(应用上下文)
模块。
这是基本Spring模块,提供spring
框架基本功能,BeanFactory
是
任何以spring为基本应用核心。
框架建立在此模块之上,它使Spring成为一种容器。
5.
BeanFactory
–
实现举例。
Bean
工厂是工厂模式一种实现,提供了控制反转功能,用来把应用配备和依赖从正真应用代码中分离。
最惯用BeanFactory
实现是XmlBeanFactory
类。
6.
XMLBeanFactory
最惯用就是org.springframework.beans.factory.xml.XmlBeanFactory
,它依照XML文献中定义加载beans。
该容器从XML
文献读取配备元数据并用它去创立一种完全配备系统或应用。
7.
解释AOP模块
AOP模块用于发给咱们Spring应用做面向切面开发,
诸多支持由AOP联盟提供,这样就保证了Spring和其她AOP框架共通性。
这个模块将元数据编程引入Spring。
8.
解释JDBC抽象和DAO模块。
通过使用JDBC抽象和DAO模块,保证数据库代码简洁,并能避免数据库资源错误关闭导致问题,它在各种不同数据库错误信息之上,提供了一种统一异常访问层。
它还运用SpringAOP
模块给Spring应用中对象提供事务管理服务。
9.
解释对象/关系映射集成模块。
通过提供ORM模块,支持咱们在直接JDBC之上使用一种对象/关系映射映射(ORM)工具,Spring
支持集成主流ORM框架,如Hiberate,JDO和
iBATIS
SQL
Maps。
Spring事务管理同样支持以上所有ORM框架及JDBC。
10.
解释WEB
SpringWEB模块是构建在application
context
模块基本之上,提供一种适合web应用上下文。
这个模块也涉及支持各种面向web任务,如透明地解决各种文献上传祈求和程序级祈求参数绑定到你业务对象。
它也有对Jakarta
Struts支持。
12.
Spring配备文献
Spring配备文献是个XML
文献,这个文献包括了类信息,描述了如何配备它们,以及如何互相调用。
13.
什么是Spring
IOC
容器?
负责创立对象,管理对象(通过依赖注入(DI),装配对象,配备对象,并且管理这些对象整个生命周期。
14.
IOC长处是什么?
或
依赖注入把应用代码量降到最低。
它使应用容易测试,单元测试不再需要单例和JNDI查找机制。
最小代价和最小侵入性使松散耦合得以实现。
IOC容器支持加载服务时饿汉式初始化和懒加载。
15.
ApplicationContext普通实现是什么?
∙FileSystemXmlApplicationContext
:
此容器从一种XML文献中加载beans定义,XML
配备文献全途径名必要提供应它构造函数。
∙ClassPathXmlApplicationContext:
此容器也从一种XML文献中加载beans定义,这里,你需要对的设立classpath由于这个容器将在classpath里找bean配备。
∙WebXmlApplicationContext:
此容器加载一种XML文献,此文献定义了一种WEB应用所有bean。
16.
工厂和
Application
contexts
有什么区别?
contexts提供一种办法解决文本消息,一种普通做法是加载文献资源(例如镜像),它们可以向注册为监听器bean发布事件。
此外,在容器或容器内对象上执行那些不得不由bean工厂以程序化方式解决操作,可以在Application
contexts中以声明方式解决。
contexts实现了MessageSource接口,该接口实现以可插拔方式提供获取本地化消息办法。
17.
一种Spring应用看起来象什么?
∙一种定义了某些功能接口。
∙这实现涉及属性,它Setter,getter
办法和函数等。
∙Spring
AOP。
XML
配备文献。
∙使用以上功能客户端程序。
依赖注入
18.
什么是Spring依赖注入?
依赖注入,是IOC一种方面,是个普通概念,它有各种解释。
这概念是说你不用创立对象,而只需要描述它如何被创立。
你不在代码里直接组装你组件和服务,但是要在配备文献里描述哪些组件需要哪些服务,之后一种容器(IOC容器)负责把她们组装起来。
19.
有哪些不同类型IOC(依赖注入)方式?
∙构造器依赖注入:
构造器依赖注入通过容器触发一种类构造器来实现,该类有一系列参数,每个参数代表一种对其她类依赖。
∙Setter办法注入:
Setter办法注入是容器通过调用无参构造器或无参static工厂
办法实例化bean之后,调用该beansetter办法,即实现了基于setter依赖注入。
20.
哪种依赖注入方式你建议使用,构造器注入,还是
Setter办法注入?
你两种依赖方式都可以使用,构造器注入和Setter办法注入。
最佳解决方案是用构造器参数实现强制依赖,setter办法实现可选依赖。
Beans
21.什么是Spring
beans?
beans
是那些形成Spring应用主干java对象。
它们被Spring
IOC容器初始化,装配,和管理。
这些beans通过容器中配备元数据创立。
例如,以XML文献中<
bean/>
形式定义。
框架定义beans都是单件beans。
在bean
tag中有个属性”singleton”,如果它被赋为TRUE,bean
就是单件,否则就是一种
prototype
bean。
默认是TRUE,因此所有在Spring框架中beans
缺省都是单件。
22.
一种
定义
包括什么?
一种Spring
定义包括容器必知所有配备元数据,涉及如何创立一种bean,它生命周期详情及它依赖。
23.
如何给Spring
容器提供配备元数据?
这里有三种重要办法给Spring
容器提供配备元数据。
XML配备文献。
基于注解配备。
基于java配备。
24.
你如何定义类作用域?
当定义一种<
bean>
在Spring里,咱们还能给这个bean声明一种作用域。
它可以通过bean
定义中scope属性来定义。
如,当Spring要在需要时候每次生产一种新bean实例,beanscope属性被指定为prototype。
另一方面,一种bean每次使用时候必要返回同一种实例,这个beanscope
属性
必要设为
singleton。
25.
解释Spring支持几种bean作用域。
Spring框架支持如下五种bean作用域:
∙singleton
:
bean在每个Spring
ioc
容器中只有一种实例。
∙prototype:
一种bean定义可以有各种实例。
∙request:
每次http祈求都会创立一种bean,该作用域仅在基于webSpring
ApplicationContext情形下有效。
∙session:
在一种HTTP
Session中,一种bean定义相应一种实例。
该作用域仅在基于webSpring
∙global-session:
在一种全局HTTP
缺省Spring
bean
作用域是Singleton.
26.
Spring框架中单例bean是线程安全吗?
不,Spring框架中单例bean不是线程安全。
27.
解释Spring框架中bean生命周期。
∙Spring容器
从XML
文献中读取bean定义,并实例化bean。
∙Spring依照bean定义填充所有属性。
∙如果bean实现了BeanNameAware
接口,Spring
传递bean
ID
到
setBeanName办法。
∙如果Bean
实现了
BeanFactoryAware
接口,
Spring传递beanfactory
给setBeanFactory
办法。
∙如果有任何与bean有关联BeanPostProcessors,Spring会在postProcesserBeforeInitialization()办法内调用它们。
∙如果bean实现IntializingBean了,调用它afterPropertySet办法,如果bean声明了初始化办法,调用此初始化办法。
∙如果有BeanPostProcessors
和bean
关联,这些beanpostProcessAfterInitialization()
办法将被调用。
∙如果bean实现了
DisposableBean,它将调用destroy()办法。
28.
哪些是重要bean生命周期办法?
你能重载它们吗?
有两个重要bean
生命周期办法,第一种是setup
,
它是在容器加载bean时候被调用。
第二个办法是
teardown
它是在容器卸载类时候被调用。
The
标签有两个重要属性(init-method和destroy-method)。
用它们你可以自己定制初始化和注销办法。
它们也有相应注解(@PostConstruct和@PreDestroy)。
29.
什么是Spring内部bean?
当一种bean仅被用作另一种bean属性时,它能被声明为一种内部bean,为了定义inner
bean,在Spring
基于XML
配备元数据中,可以在
<
property/>
constructor-arg/>
元素内使用<
元素,内部bean普通是匿名,它们Scope普通是prototype。
30.
在
Spring中如何注入一种java集合?
Spring提供如下几种集合配备元素:
∙<
list>
类型用于注入一列值,容许有相似值。
set>
类型用于注入一组值,不容许有相似值。
map>
类型用于注入一组键值对,键和值都可觉得任意类型。
props>
类型用于注入一组键值对,键和值都只能为String类型。
31.
什么是bean装配?
装配,或bean
装配是指在Spring
容器中把bean组装到一起,前提是容器需要懂得bean依赖关系,如何通过依赖注入来把它们装配到一起。
32.
什么是bean自动装配?
容器可以自动装配互相合伙bean,这意味着容器不需要<
constructor-arg>
和<
property>
配备,能通过Bean工厂自动解决bean之间协作。
33.
解释不同方式自动装配
。
有五种自动装配方式,可以用来指引Spring容器用自动装配方式来进行依赖注入。
∙no:
默认方式是不进行自动装配,通过显式设立ref
属性来进行装配。
∙byName:
通过参数名
自动装配,Spring容器在配备文献中发现beanautowire属性被设立成byname,之后容器试图匹配、装配和该bean属性具备相似名字bean。
∙byType:
通过参数类型自动装配,Spring容器在配备文献中发现beanautowire属性被设立成byType,之后容器试图匹配、装配和该bean属性具备相似类型bean。
如果有各种bean符合条件,则抛出错误。
∙constructor:
这个方式类似于byType,
但是要提供应构造器参数,如果没有拟定带参数构造器参数类型,将会抛出异常。
∙autodetect:
一方面尝试使用constructor来自动装配,如果无法工作,则使用byType方式。
34.自动装配有哪些局限性
?
自动装配局限性是:
∙重写:
你仍需用
和
配备来定义依赖,意味着总要重写自动装配。
∙基本数据类型:
你不能自动装配简朴属性,如基本数据类型,String字符串,和类。
∙模糊特性:
自动装配不如显式装配精准,如果有也许,建议使用显式装配。
35.
你可以在Spring中注入一种null
和一种空字符串吗?
可以。
Spring注解
36.
什么是基于JavaSpring注解配备?
给某些注解例子.
基于Java配备,容许你在少量Java注解协助下,进行你大某些Spring配备而非通过XML文献。
以@Configuration
注解为例,它用来标记类可以当做一种bean定义,被SpringIOC容器使用。
另一种例子是@Bean注解,它表达此办法将要返回一种对象,作为一种bean注册进Spring应用上下文。
37.
什么是基于注解容器配备?
相对于XML文献,注解型配备依赖于通过字节码元数据装配组件,而非尖括号声明。
开发者通过在相应类,办法或属性上使用注解方式,直接组件类中进行配备,而不是使用xml表述bean装配关系。
38.
如何启动注解装配?
注解装配在默认状况下是不启动,为了使用注解装配,咱们必要在Spring配备文献中配备
context:
annotation-config/>
元素。
39.
@Required
注解
这个注解表白bean属性必要在配备时候设立,通过一种bean定义显式属性值或通过自动装配,若@Required注解bean属性未被设立,容器将抛出BeanInitializationException。
40.
@Autowired
注解提供了更细粒度控制,涉及在何处以及如何完毕自动装配。
它用法和@Required同样,修饰setter办法、构造器、属性或者具备任意名称和/或各种参数PN办法。
41.
@Qualifier
当有各种相似类型bean却只有一种需要自动装配时,将@Qualifier
注解和@Autowire
注解结合使用以消除这种混淆,指定需要装配确切bean。
Spring数据访问
42.在Spring框架中如何更有效地使用JDBC?
使用SpringJDBC
框架,资源管理和错误解决代价都会被减轻。
因此开发者只需写statements
queries从数据存取数据,JDBC也可以在Spring框架提供模板类协助下更有效地被使用,这个模板叫JdbcTemplate
(例子见这里here)
43.
JdbcTemplate
JdbcTemplate
类提供了诸多便利办法解决诸如把数据库数据转变成基本数据类型或对象,执行写好或可调用数据库操作语句,提供自定义数据错误解决。
44.
Spring对DAO支持
Spring对数据访问对象(DAO)支持旨在简化它和数据访问技术如JDBC,hibernate
JDO
结合使用。
这使咱们可以以便切换持久层。
编码时也不用紧张会捕获每种技术特有异常。
45.使用Spring通过什么方式访问Hibernate?
在Spring中有两种方式访问Hibernate:
∙控制反转
Hibernate
Template和
Callback。
∙继承
HibernateDAOSupport提供一种AOP
拦截器。
46.
Spring支持ORM
Spring支持如下ORM:
∙Hibernate
∙iBatis
∙JPA
(Java
Persistence
API)
∙TopLink
∙JDO
Data
Objects)
∙OJB
47.如何通过HibernateDaoSupport将Spring和Hibernate结合起来?
用Spring
SessionFactory
调用
LocalSessionFactory。
集成过程分三步:
∙配备the
SessionFactory。
∙继承HibernateDaoSupport实现一种DAO。
∙在AOP支持事务中装配。
48.
Spring支持事务管理类型
Spring支持两种类型事务管理:
∙编程式事务管理:
这意味你通过编程方式管理事务,给你带来极大灵活性,但是难维护。
∙声明式事务管理:
这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配备来管理事务。
49.
Spring框架事务管理有哪些长处?
∙它为不同事务API
如
JTA,JDBC,Hibernate,JPA
和JDO,提供一种不变编程模式。
∙它为编程式事务管理提供了一套简朴API而不是某些复杂事务API如
∙它支持声明式事务管理。
∙它和Spring各种数据访问抽象层较好得集成。
50.
你更倾向用那种事务管理类型?
大多数Spring框架顾客选取声明式事务管理,由于它相应用代码影响最小,因而更符合一种无侵入轻量级容器思想。
声明式事务管理要优于编程式事务管理,虽然比编程式事务管理(这种方式容许你通过代码控制事务)少了一点灵活性。
Spring面向切面编程(AOP)
51.
解释AOP
面向切面编程,或AOP,
是一种编程技术,容许程序模块化横向切割关注点,或横切典型责任划分,如日记和事务管理。
52.
Aspect
切面
AOP核心就是切面,它将各种类通用行为封装成可重用模块,该模块具有一组API提供横切功能。
例如,一种日记模块可以被称作日记AOP切面。
依照需求不同,一种应用程序可以有若干切面。
在Spring
AOP中,切面通过带有@Aspect注解类实现。
AOP
中,关注点和横切关注区别是什么?
关注点是应用中一种模块行为,一种关注点也许会被定义成一种咱们想实现一种功能。
横切关注点是一种关注点,此关注点是整个应用都会使用功能,并影响整个应用,例如日记,安全和数据传播,几乎应用每个模块都需要功能。
因而这些都属于横切关注点。
54.
连接点
连接点代表一种应用程序某个位置,在这个位置咱们可以插入一种AOP切面,它事实上是个应用程序执行Spring
AOP位置。
55.
告知
告知是个在办法执行前或执行后要做动作,事实上是程序执行时要通过SpringAOP框架触发代码段。
Spring切面可以应用五种类型告知:
∙before:
前置告知,在一种办法执行前被调用。
∙after:
在办法执行之后调用告知,无论办法执行与否成功。
∙after-returning:
仅当办法成功完毕后执行告知。
∙after-throwing:
在办法抛出异常退出时执行告知。
∙around:
在办法执行之前和之后调用告知。
56.
切点
切入点是一种或一组连接点,告知将在这些位置执行。
可以通过表达式或匹配方式指明切入点。
57.
什么是引入?
引入容许咱们在已存在类中增长新办法和属性。
58.
什么是目的对象?
被一种或者各种切面所告知对象。
它普通是一种代理对象。
也指被告知(advised)对象。
59.
什么是代理?
代理是告知目的对象后创立对象。
从客户端角度看,代理对象和目的对象是同样。
60.
有几种不同类型自动代理?
BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
Metadata
autoproxying
61.
什么是织入。
什么是织入应用不同点?
织入是将切面和到其她应用类型或对象连接或创立一种被告知对象过程。
织入可以在编译时,加载时,或运营时完毕。
62.
解释基于XML
Schema方式切面实现。
在这种状况下,切面由常规类以及基于XML配备实现。
63.
解释基于注解切面实现
在这种状况下(基于@AspectJ实现),涉及到切面声明风格与带有java5标注普通java类一致。
MVC
64.
什么是SpringMVC框架?
配备构建Web
应用全功能MVC框架。
Spring可以很便捷地和其她MVC框架集成,如Struts,Spring
MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。
它也容许以声明方式把祈求参数和业务对象绑定。
65.
DispatcherServlet
SpringMVC框架是环绕DispatcherServlet来设计,它用来解决所有HTTP祈求和响应。
66.
WebApplicationContext
WebApplicationContext
继承了ApplicationContext
并增长了某些WEB应用必备特有功能,它不同于普通ApplicationContext
,由于它能解决主题,并找到被关联servlet。
67.
MVC框架控制器?
控制器提供一种访问应用程序行为,此行为普通通过服务接口实现。
控制器解析顾客输入并将其转换为一种由视图呈现给顾客模型。
Spring用一种非常抽象方式实现了一种控制层,容许顾客创立各种用途控制器。
68.
@Controller
该注解表白该类扮演控制器角色,Spring不需要你继承任何其她控制器基类或引用Servlet
API。
69.
@RequestMapping
该注解是用来映射一种URL到一种类或一种特定方解决法上。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring 相关 试题