《Java高级编程》节课作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java高级编程》结课大作业

题目:分别谈谈你对Struts2、Hibernate和Spring框架的理解,并举例说明。

1、Struts2的理解:

Struts2 这个框架,struts1是世界上第一个mvc框架,现在的MVC框架很多最著名的是Struts springmvc 等 Struts2的体系结构和struts1差别巨大,它明确的说它不是一个新的MVCweb框架,它不是从struts1升级过来的,它是

基于webwork的xwork的,是xwork2的升级版, Struts2吸取了struts1和xwork2的两者的优点,Strus2是以webwork为核心。所以struts2更加优秀的,更加整洁的MVC 框架,采用拦截器的机制处理用户的请求这样的设计能够与

原生的servletAPI完全脱离,在struts2中有一个核心类它就是StrutsPreparedAndExecuteFilter struts2准备执行过滤器我们要想使用Struts2 对用户的请求处理我们必须在web.xml中进行配置这个核心过滤器。基本上是过滤所有请求的。

一般的Struts2框架的处理流程:

1、加载类 StrutsPrepareAndExecuteFilter 会执行准备操作执行操作

准备操作:使用AcionMapper 进行读取对URL进行映射,

执行操作:会交给actionproxy 来调用配置管理器,来读取struts.xml 等读取完毕 actionproxy 交给第三者: actionInvocation 来递归调用一组拦截器,基本上就是我们使用的拦截器栈进行预处理操作

2、等预处理操作完毕之后,第三种进行调用我们的action 和result 在依次递归反向调用我们的那组拦截器进行后处理操作最后发出response

给浏览器

2、hibernate的理解

hibernate 是一个持久层框架,又是一个ORM框架,通俗的来讲就是一个

对象关系映射框架。使应用程序的持久化类到数据库中的表之间的关系的映射;hibernate其实就是是对jdbc的封装,减轻了程序员使用jdbc操作数据库的繁琐工作。让程序员操作数据库关心的不再是数据库中的表而是我们的持久化对象javabean,比如:进行保存操作的时候仅仅使用一个save() 的方法,删除一条记录的时候仅仅调用delete()方法就能方便的完成对数据库中的数据的增加、删除操作。

使用Hibernate 的基本的流程是配置Configuration对象,产生SessionFactory 创建session对象,开启事务完成增加删除修改查询的操作提交事务关闭 session在使用hibernate的时候要先配置

hibernate.cfg.xml 文件其中配置数据库连接信息和方言【不过这些固定的可以配置在hibernate.properties 属性配置文件中,在应用程序启动的时候,会先加载 src目录下的hibernate.properties 再加载 src目录下的

hibernate.cfg.xml 再加载对应的持久化配置映射文件*.hbm.xml 等加载完成后开始创建sessionFactory 】

3、对spring 的理解

说起spring ,spring实现了工厂模式的工厂类--beanFactory这是一个轻量级框架,其中在spring中包含有三个重要的技术IOC 、DI、 AOP。

IOC:控制反转这个IOC是一种编程思想,也是一种架构的艺术,利用这个技术可以很好的实现模块与模块之间的解耦,耦合性降低。如使用了Spring的IOC技术,对自己想使用的对象进行实例化的时候,不需要你自己进行new 操作了,而是交给 Spring容器帮你实例化对象。

那什么是DI呢?其实IOC也成为DI DI 是英文的缩写依赖注入这这个名词更能说明IOC的设计理念。就是将服务注入到使用它的地方中,组件之间的依赖关系由容器在应用系统运行前来决定。【依赖注入的方式一般分为4个:通过gettter 和setter方法进行注入,和通过构造函数进行注入通过对象工厂进行注入和通过静态工厂进行注入】。

AOP是面向切面编程,这解决了在整个系统中很多毫不相干的模块或者具体的类添加相同的功能,比如输出日志信息,权限设置,和事务管理等。实现AOP

功能就是实现了代理功能,对目标类进行代理,动态的代理可以分为两种: jdk 的动态代理和CGLIB的动态代理,它们之间的区别是,使用jdk的动态代理代理对象必须实现一个接口,而cglib 没有必要,对字节码也可以动态代理了。很强大不过我们一般在做应用程序的开发的时候面向接口的编程,减少类与类之间的耦合,所以我们用jdk的动态代理。Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。

Struts2+Spring+Hibernate是J2EE的最新流行框架。本篇是我搭建这个框架的经验总结,有很多人搭建这个框架总会遇到

大大小小的问题,网上也没有什么行之有效的方案或成体系的介绍,所以我就决定总结一下我的搭建过程。给一些搭

建尚存问题的朋友提供帮助。

我用这个框架,实现的是基本的CRUD功能的一个雇员管理系统,本来打算丰富一下功能,但是一直没能抽出空去搞。

目前版本暂定为1.0,除了CRUD外还配置了表单验证框架JSValidation。功能都能很顺利的实现。

现在分享部分源码,来说明一些注意事项。

以下是部分搭建过程及源码:

1.先组合实现Hibernate3.2+Spring

2.5支持,删除hibernate.cfg.xml文件,修改applicationContext.xml文件的内容,增加SessionFactory和dataSource的设置。

2.通过MyEclipse的向导方式,生成POJO类和对应的映射文件。

3.修改applicationContext.xml文件中

name="mappingResources">元素的内容。

相关文档
最新文档