集成spring struts hibernate思想.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
集成spring struts hibernate思想.doc

应用程序的分层 Web应用程序分为四层,这四层是:presentation(描述),business(业务),persistence(持久)和domain model(域模型)。表示层(The Presentation Layer) 一般来讲,一个典型的Web应用的的末端应该是表示层。用来管理用户的请求,做出相应的响应,给出显示。使用Struts框架来实现应用程序的表示层。 域模型层(The Domain Model Layer ) 域模块层由实际需求中的业务对象组成,即我们常说的BO(Business Object) 比如, Order , Pet等等。 开发者在这层 不用管那些DTOs,仅关注domain object即可。 例如,Hibernate允许你将数据库中的信息存放入对象(domain objects),这样你可以在连接断开的情况下把这些数据显示到UI层。 而那些对象也可以返回给持久层,从而在数据库里更新。 业务层(The Business Layer) 一个典型Web应用的中间部分是业务层或者服务层。这一层最容易受到忽视,从而导致大量的代码紧密的耦合在一起,从而使整个程序变的难以维护。使用Spring框架来解决这个问题,Spring把程序中所涉及到包含业务逻辑和Dao的Objects--例如transaction management handler(事物管理控制)、Object Factories(对象工厂)、service objects(服务组件)--都通过XML来配置联系起来,从而使业务层变得非常灵活和易于维护。 持久层(The Persistence Layer) 持久层是典型的Web应用的另一个末端。现在已经有很多很好的ORM开源框架来解决持久层的各种问题,尤其是Hibernate。 Hibernate为Java提供了OR持久化机制和查询服务, 它还给已经熟悉SQL和JDBC API 的Java开发者一个学习桥梁,他们学习起来很方便。 Hibernate的持久对象是基于POJO和Java collections。创建域模型层 这层是编码的着手点,我们的编码就从这层开始。 本应用中的Domain Object比较简单,只使用了一个对象:com.ibm.sample.bo.InfoObject.java。 代码清单 :package com.ibm.sample.bo; public class InfoObject { private Long infoId; private String title; private String content; } infoId记录了这个InfoObject对象的唯一标识,title记录了新闻标题,content记录了新闻内容。 创建持久层 持久化BO。 Hibernate是通过POJO工作的, 因此我们先给InfoObject对象的fileds 加上getter,setter方法。Hibernate通过XML文件来映射(OR)对象,在这里,我们使用XDoclet工具来生成hibernate的XML映射文件。为了使用Xdoclet这个工具,我们需要在BO对象的代码里面添加一些描述语句。修改后的BO对象代码如下:package com.ibm.sample.bo; /** * @author rayguo mail:guorui@ * * @hibernate.class table=InfoObject * */ public class InfoObject { private Long infoId; private String title; private String content; /** * Returns the Content. * @return String * * @perty * @hibernate.column name=Content not-null=false * length=3000 */ public String getContent() { return content; } /** * Returns the id. * @return Long * * @hibernate.id column=infoId * generator-class=native */ public Long getInfoId() { return infoId; } /** * Returns the Title. * @return String * * @perty * @hibernate.col

文档评论(0)

caijie1982 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档