和通常大多数的Web应用程序一样,本应用程序分为四层,这四层是:presentation(描述),business(业务),persistence(持久)和domain model(域模型)。
一般来讲,一个典型的Web应用的的末端应该是表示层。用来管理用户的请求,做出相应的响应,给出显示。在这里,我们使用了Struts Portlet框架来实现本应用程序的表示层。
域模块层由实际需求中的业务对象组成,即我们常说的BO(Business Object) 比如, Order , Pet等等。 开发者在这层 不用管那些DTOs,仅关注domain object即可。 例如,Hibernate允许你将数据库中的信息存放入对象(domain objects),这样你可以在连接断开的情况下把这些数据显示到UI层。 而那些对象也可以返回给持久层,从而在数据库里更新。
一个典型Web应用的中间部分是业务层或者服务层。这一层最容易受到忽视,从而导致大量的代码紧密的耦合在一起,从而使整个程序变的难以维护。在这里,我们使用Spring框架来解决这个问题,Spring把程序中所涉及到包含业务逻辑和Dao?的Objects--例如transaction management handler(事物管理控制)、Object Factories(对象工厂)、service objects(服务组件)--都通过XML来配置联系起来,从而使业务层变得非常灵活和易于维护。
持久层是我们典型的Web应用的另一个末端。现在已经有很多很好的ORM开源框架来解决持久层的各种问题,尤其是Hibernate。 Hibernate为Java提供了OR持久化机制和查询服务, 它还给已经熟悉SQL和JDBC API 的Java开发者一个学习桥梁,他们学习起来很方便。 Hibernate的持久对象是基于POJO和Java collections。