Spring习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、阐述Spring工作原理。
1、spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2、DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller
3、DispatcherServlet请请求提交到目标Controller
4、Controller进行业务逻辑处理后,会返回一个ModelAndView
5、Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6、视图对象负责渲染返回给客户端。
2、在Spring IoC核心模式中,试比较Set依赖注入与构造函数依赖注入的异同点?
属性注入和构造注入都具有无侵入性的特点。
构造注入:构造注入可以一次性地为组件注入多个不同依赖的目标参数对象,避免为每个属性成员提供get/set方法,从而使得组件被创建后处于相对稳定状态;类之间的关联关系仅在构造函数中表达,使得系统层次清晰;通过构造注入,可以在构造函数中决定依赖关系得注入顺序,优先依赖的先注入;
属性注入:能够使得单元测试比较简单和分别实现;通过setter方法设定依赖关系显得更加直观,自然;如果依赖关系(或继承关系)较为复杂,设置注入则更为简洁;对于某些第三方类库,有求组件必须提供默认的构造函数,此时构造注入就有了局限性,采用设置注入为佳。
3、Struts中ActionForm有什么作用?
1、ActionForm Bean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。
2、Struts框架利用ActionForm Bean来进行View组件和Controller组件之间表单数据的传递。
3、Struts框架把View组件接受到的用户输入的表单数据保存在ActionForm Bean中,把它传递给Controller组件,Controller组件可以对ActionForm Bean中的数据进行修改,JSP 文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置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提供四种:,
props.:java.util.Properties
♦
♦
♦
♦
♦
♦
9、什么是spring?它有什么特点?
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
1、采用分层架构设计和实现;
2、是轻量级的J2EE应用开发框架;
3、是一种非侵入式的轻量级框架;
4、是使用控制反转IoC技术的容器。
10、Hibernate应用与传统JDBC应用的比较
Hibernate是java对象/关系数据库映射工具。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。1、关系型数据库与JDBC是一对一的关系,只需要简单配置就可以实现,所以Hib系,Hibernate与关系型数据库是一对多的关ernate是跨数据库平台的。2、代码中,Hibernate可以不使用本地化SQL语句完成对数据的SUDI,与数据库是松耦合,JDBC不能。3、Hibernate很好地兼容了JDBC,可以在代码中直接嵌入JDBC API,但不提倡这样做。4Hibernate拥有数据连接池实现机制(sessionFactory)。
11、Spring 框架的7 个模块功能
1、核心容器(Spring Core);
2、Spring 上下文(Spring Context);
3、Spring 的面向方面的编程(Spring AOP);
4、Spring JDBC DAO 抽象层(Spring DAO);
5、Spring ORM 的对象关系工具(Spring ORM);
6、Spring Web 模块(Spring Web);
7、Spring MVC 框架(Spring Web MVC)
12、“非侵入式”的体现以及如何达到“非侵入式”的设计目标
1、“非侵入式”的体现:允许在应用系统中自由地选择和组装Spring的各功能模块,并且不强制要求应用中的类必须从Spring 的系统API中的某个类来继承或者实现某个接口;同时提供和其它框架集成的接口,如与Hibernate、Struts 的集成等;
2、如何达到“非侵入式”的设计目标:应用Java技术中的反射(Reflection)机制;并配合使用Spring框架中的BeanWrapper和BeanFactory组件类最终达到对象的实例创建和属性注入1
3、在web中如何配置Spring