欢迎来到天天文库
浏览记录
ID:55296036
大小:340.50 KB
页数:9页
时间:2020-05-09
《基于注解驱动的Struts_Spring_Hibernate开发框架.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于注解驱动的Struts_Spring_Hibernate开发框架摘要:随着Java开源框架不断引进对注解(Annotation)的支持,使得开发人员可以用单方面去管理类及其之间关系,而不用像以往以XML配置文件的方式那样,一旦遇到问题,就要不断在Java视图和XML视图中切换。基于注解驱动的方式,大大减少了Struts、Spring、Hibernate的XML配置,配置与代码集中在同一个地方,可以很敏捷的进行即时反射,是架构轻量级JavaWeb应用的很好选择。关键词:Struts;Spring;Hibernate;注解(Annotation)1.引言Struts+Spri
2、ng+Hibernate是目前国内外主流JavaWeb应用开发框架之一。Struts作为前台控制框架简化了程序的开发,使页面设计人员和Java程序编写人员达到有效的分离,降低系统架构的耦合性。Hibernate是一个O/RMapping持久层框架的轻量级组件,对持久层进行了轻量级封装,降低了程序的复杂度。Spring作为一个应用于所有层面综合框架,具有强大的应用功能及灵活性,非常适合作为一些大规模软件项目的底层平台。随着Java开源框架不断引进对Annotation的支持,其传统的XML配置方式与Annotation配置方式相对比,传统的XML的配置方式的缺点是:代码与配置的
3、分开,必须维护两份相对应的代码(配置也可以认为是一种代码),相对比较烦琐,而Annotation方式代码与配置集中在同一个地方,修改比较方便,以很敏捷的进行即时反射,是架构轻量级JavaWeb应用的很好选择。育儿圈平台就是基于Annotation的方式架构的。2.Struts+Spring+Hibernate的体系架构大部分Web应用都可以按照职责分为表现层、业务逻辑层、数据持久层和领域模型层,每一层负责整个应用不同方面的职责,并且不应该和其他层有功能上的混合,应当每一层都应该和其他层隔离,只允许通过明确的接口在层与层之间进行通讯。下图是基于Struts+Spring+Hib
4、ernate框架的基本体系架构图:图1Struts+Spring+Hibernate框架的基本体系架构图表现层采用Struts框架,它执行如下的功能:1管理客户端的请求并做出相应的应答。2提供一个控制器,管理分派调用业务逻辑和其他上层处理。3验证用户输入,确保用户输入的信息合法有效。4处理异常,将所有异常抛给StrutsAction统一处理。业务逻辑层采用Spring框架,它负责如下的功能:1处理应用程序的业务逻辑和业务校验。2统一管理事物。3提供与其他相互作用的接口。4管理业务级别的对象的依赖。5在表现层和数据持久层之间增加了一个灵活的机制,避免两者的直接联系,实现松耦合编
5、程。6在数据持久层上,构造出业务逻辑的上下文,提供业务逻辑服务。7管理基于数据持久层的业务逻辑的实现。数据持久层的作用是让数据持久保留下来以及把持久保存的数据读取出来。数据持久层采用目前比较成熟的Hibernate框架,它为Java提供对象模型到关系模型的持久化和查询服务。Hibernate执行如下功能:①查询关系数据以得到对象。②执行数据的保存、修改和删除操作。领域模型层由实际需求中的业务对象组成。域模型层使得程序员能以自然的面向对象的方式工作,而不需要额外的编码。域模型层主要的作用是提供一个在不同层之间转移的对象集合。1.在Struts_Spring_Hibernate架
6、构中使用Annotation3.1实体类的Annotation配置例如平台中的空间留言表实体类,其基于Annotation配置方式的代码如下图所示:其中:@Entity定义Spacemessage类为实体类,@Table定义该实体类在数据库中对应的表名。@Id定义该属性对应的列为主键,@SequenceGenerator和@GeneratedValue指定主键的生成方式为序列生成方式(Oracle)。@Column定义该属性对应表中的列名,以及其他如:unique(是否唯一)、nullable(可否为空)等属性。基于Annotation的配置方式省略了每个实体类一个hbm.x
7、ml配置文件的烦琐操作,看起来更加简洁、明了。1.2Dao和Manager组件的Annotation配置在育儿圈平台中,所有的DAO类都是继承自一个通用的泛型DAO类:SimpleHibernateTemplate。DAO和Manager组件基于Annotation方式配置的代码如下图所示:其中:@Service表示SpacemessageManager类是一个service组件。@Transactional表示使用Spring定义的事务管理器。@Aut
此文档下载收益归作者所有