用Struts+Spring+Hibernate组装WEB应用

豆豆网   技术应用频道   2007年08月01日    社区交流

内容摘要:这篇文章将讨论怎样组合几个著名的框架去做到松耦合的目的,怎样建立你的构架,怎样让你的各个应用层保持一致。这篇文章将使用3种流行的开源框架来讨论组合框架的策略

  直接和数据库通讯,比如JDBC调用;

  业务逻辑和与你的应用程序相关的验证;

  事务管理;

  在表现层中引入这种代码将导致典型耦合和讨厌的维护。

  持久层

  在典型web应用的另一端是持久层。这通常是使事情迅速失控的地方。开发者低估了构建他们自己的持久层框架的挑战性。一般来说,机构内部自己写的持久层不仅需要大量的开发时间,而且还经常缺少功能和变得难以控制。有几个开源的“对象-关系映射”框架非常解决问题。尤其是,Hibernate框架为java提供了"对象-关系持久化"机制和查询服务。Hibernate对那些已经熟悉了SQL和JDBC API的Java开发者有一个适中的学习曲线。Hibernate持久对象是基于简单旧式Java对象和Java集合。此外,使用Hibernate并不妨碍你正在使用的IDE。下面的列表包含了你该写在一个持久层框架里的代码类型:

  查询相关的信息成为对象。Hibernate通过一种叫作HQL的面向对象的查询语言或者使用条件表达式API来做这个事情。 HQL非常类似于SQL-- 只是把SQL里的table和columns用Object和它的fields代替。有一些新的专用的HQL语言成分要学;不过,它们容易理解而且文档做得好。HQL是一种使用来查询对象的自然语言,花很小的代价就能学习它。

  保存、更新、删除储存在数据库中的信息。

  像Hibernate这样的高级“对象-关系”映射框架提供对大多数主流SQL数据库的支持,它们支持“父/子”关系、事务处理、继承和多态。

  这儿是一些应该在持久层里被避免的项目:

  业务逻辑应该在你的应用的一个高一些的层次里。持久层里仅仅允许数据存取操作。

  你不应该把持久层逻辑和你的表现层逻辑搅在一起。避免像JSPs或基于servlet的类这些表现层组件里的逻辑和数据存取直接通讯。通过把持久层逻辑隔离进它自己的层,应用程序变得易于修改而不会影响在其它层的代码。例如:Hebernate能够被其它持久层框架或者API代替而不会修改在其它任何层的代码。

责编:豆豆技术应用

正在加载评论...