Spring习题分析和总结.docx
1、阐述Spring工作原理。
1、springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2、DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller3、DispatcherServlet请请求提交到目标Controller
4、Controller进行业务逻辑处理后,会返回一个ModelAndView
5、Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6、视图对象负责渲染返回给客户端。
2、在SpringIoC核心模式中,试比较Set依赖注入与构造函数依赖注入的异同
点?
属性注入和构造注入都具有无侵入性的特点。
构造注入:构造注入可以一次性地为组件注入多个不同依赖的目标参数对象,避免为每个属性成员提供get/set方法,从而使得组件被创建后处于相对稳定状态;类之间的关联关系仅在构造函数中表达,使得系统层次清晰;通过构造注入,可以在构造函数中决定依赖关系得注入顺序,优先依赖的先注入;
属性注入:能够使得单元测试比较简单和分别实现;通过setter方法设定依赖关系显得更加直观,自然;如果依赖关系(或继承关系)较为复杂,设置注入则更为简洁;对于某些第三方类库,有求组件必须提供默认的构造函数,此时构造注入就有了局限性,采用设置注入为佳。
3、Struts中ActionForm有什么作用?
1、ActionFormBean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。
2、Struts框架利用ActionFormBean来进行View组件和Controller组件之间表单数据的传递。
3、Struts框架把View组件接受到的用户输入的表单数据保存在ActionFormBean中,把它传递给Controller组件,Controller组件可以对ActionFormBean中的数据进行修改,JSP文件使用Struts标签读取修改后的ActionFormBean的信息,重新设置HTML表单。
ActionForm是和页面的 Form对应的,也就是接收页面输入的数据一开始保存在
ActionForm中,然后再Action里面,调用逻辑层的代码来处理这些数据。
4、说说你理解的“框架”,举个现实生活中框架的例子。
5、阐述Spring框架和EJB各自的优缺点?
EJB是优良的业务对象分布式框架,EJB容器具有事务管理,安全机制功能;
EJB是重量级的,部署麻烦;EJB代码不能脱离EJB容器;购买EJB容器价钱昂贵,启动缓慢;
Spring框架是轻量级的架构,支持EJB并对其实现更加简化,实现了解耦,并脱离了容器;中断了应用程序的逻辑,使代码变得不完整,不直观。将原本应该代码化的逻辑配置化,增加了出错的机会以及额外的负担。失去了IDE的支持。调试阶段不直观,后期的bug对应阶段,不容易判断问题所在。
6、模式和框架的区别。
框架和模式都是提高软复用的技术手段,他们之间互相联系但又有所侧重:1、设计模式比框架更抽象:应用框架能够用代码表示,而设计模式只有其实例才能表示为代码。框架能够使用程序设计语言写出来,不仅能被学习,也能被直接执行和复用。而设计模式的每一次复
用时,都需要被实现。设计模式需要解释它的意图、权衡和设计效果。2、设计模式是比框架更小的体系结构元素:一个典型的框架包括了多个设计模式。3、框架比设计模式更加特征化:框架总是针对一个特定的应用领域,而设计模式至少要包括两个不同的应用领域。
7、如何在Spring中实现国际化?
1、导入Spring标签文件;2、配置Spring标签库和资源库;3、创建资源库文件;4、标签化JSP页面中的文字;5、创建资源文件。
8、装配集合中常用的四种属性是什么?并列举任意一种的使用方法。
Spring提供四种:list,set,map,propsprops.:java.util.Properties
propertyname=“barProps”
props
propkey=“key1”value1/prop
propkey=“key2”value2/prop
/props
/property
9、什么是spring?它有什么特点?
Spring是一个轻量级的控制反转(IoC)和面向切面(A