struts+spring+ibatis轻量级J2EE开发
多数it 组织都必须解决三个主要问题:1.帮助组织减少成本 2.增加并且保持客户 3.加快业务效率。完成这些问题一般都需要实现对多个业务系统的数据和业务逻辑的无缝访问,也就是说,要实施系统集成工程,以便联结业务流程、实现数据的访问与共享。
jpetstore 4.0是ibatis的最新示例程序,基于struts mvc框架(注:非传统struts开发模式),以ibatis作为持久化层。该示例程序设计优雅,层次清晰,可以学习以及作为一个高效率的编程模型参考。本文是在其基础上,采用spring对其中间层(业务层)进行改造。使开发量进一步减少,同时又拥有了spring的一些好处…
1. 前言
jpetstore 4.0是ibatis的最新示例程序。ibatis是开源的持久层产品,包含sql maps 2.0 和 data access objects 2.0 框架。jpetstore示例程序很好的展示了如何利用ibatis来开发一个典型的j2ee web应用程序。jpetstore有如下特点:
- ibatis数据层
- pojo业务层
- pojo领域类
- struts mvc
- jsp 表示层
以下是本文用到的关键技术介绍,本文假设您已经对struts,springframewok,ibatis有一定的了解。
- struts 是目前java web mvc框架中不争的王者。经过长达五年的发展,struts已经逐渐成长为一个稳定、成熟的框架,并且占有了mvc框架中最大的市场份额。但是struts某些技术特性上已经落后于新兴的mvc框架。面对spring mvc、webwork2 这些设计更精密,扩展性更强的框架,struts受到了前所未有的挑战。但站在产品开发的角度而言,struts仍然是最稳妥的选择。本文的原型例子jpetstore 4.0就是基于struts开发的,但是不拘泥于struts的传统固定用法,例如只用了一个自定义action类,并且在form bean类的定义上也是开创性的,令人耳目一新,稍后将具体剖析一下。
- spring framework 实际上是expert one-on-one j2ee design and development 一书中所阐述的设计思想的具体实现。spring framework的功能非常多。包含aop、orm、dao、context、web、mvc等几个部分组成。web、mvc暂不用考虑,jpetstore 4.0用的是更成熟的struts和jsp;dao由于目前hibernate、jdo、ibatis的流行,也不考虑,jpetstore 4.0用的就是ibatis。因此最需要用的是aop、orm、context。context中,最重要的是beanfactory,它能将接口与实现分开,非常强大。目前aop应用最成熟的还是在事务管理上。
- ibatis 是一个功能强大实用的sql map工具,不同于其他orm工具(如hibernate),它是将sql语句映射成java对象,而对于orm工具,它的sql语句是根据映射定义生成的。ibatis 以sql开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。有ibatis代码生成的工具,可以根据ddl自动生成ibatis代码,能减少很多工作量。
2. jpetstore简述
2.1. 背景
最初是sun公司的j2ee petstore,其最主要目的是用于学习j2ee,但是其缺点也很明显,就是过度设计了。接着oracle用j2ee petstore来比较各应用服务器的性能。微软推出了基于。net平台的 pet shop,用于竞争j2ee petstore.而jpetstore则是经过改良的基于struts的轻便框架j2ee web应用程序,相比来说,jpetstore设计和架构更优良,各层定义清晰,使用了很多最佳实践和模式,避免了很多"反模式",如使用存储过程,在java代码中嵌入sql语句,把html存储在数据库中等等。最新版本是jpetstore 4.0.
2.2. jpetstore开发运行环境的建立
1、开发环境
- java sdk 1.4.2
- apache tomcat 4.1.31
- eclipse-sdk-3.0.1-win32
- hsqldb 1.7.2
2、eclipse插件