一种Java Web应用开发框架的构建(基于Struts2+Spring+FreeMarker)之一
企业级Java应用在框架的基础上构建可以大幅缩短开发周期,模块化分工,层次分明人员目的性强,所以当前流行Struts/Struts2,Spring和Hibernate/IBatis框架的整合,他们在一起能很好完成一个完整的工作流程,对于中小型应用,只需经过框架整合,基础封装即可满足开发要求。
本人接触框架2年时间,对Strtus2,Spring有所了解,应用较多,基于二者构建的开发框架历经中小项目考验,安全而稳定,现在介绍一种框架的构建的方式。为什么不用Hibernate是基于快速开发的考虑,Hibernate中OR映射的设置和数据库访问都需要经过专业的设计,不如直接操纵SQL语句直观,也不利于SQL语句优化,那么利用Spring的JdbcTemplate就能满足需求,而且SQL语句的后期维护也是非常方便的。在开发成员水平不很一致时提供了很大的伸缩空间。
开发工具是Eclipse3.5.1(包含WTP)+Tomcat6.0.20
项目目录结构:
src目录装java源文件;resources目录装XML和属性配置文件;二者的编译路径都指向WEB-INF/classes下,只要二者下的包结构相同,那么类和配置文件就可以在同一个目录下,这样的配置就是为了java文件和配置文件的编辑时分离而发布时结合,方便直观。
lib目录是放置第三方类库,比如JUnit等,项目开发中还需要servlet-api,也应该放到这里,因为Tomcat本身已经支持servlet,只是编码时没有这个类库,所以他不是发布必须的,而是编码时要用的,也可以打入第三方类库中。
Webapp目录的作用这里不解释了,如果不清楚的话,您不用继续往下看了。本文不适合您来阅读。
Webapp目录结构如下:
common目录放置基本FreeMarker配置文件和抽取的基础宏
components放置前端需要应用的组件,比如dTree,fckEditor等资源
css目录放置项目所需的样式表文件
images目录放置项目所需的图片资源文件
js目录放置项目中的JavaScript文件
manage目录是供测试使用的后台管理目录
WEB-INF/lib是项目运行所需的类库文件
struts-tags.tld单独放置此处是为了在FreeMakrer中使用Struts2的标签库
web.xml的作用就不解释了
index.html是项目的入口文件,包含一个转向的地址
login_view.ftl是项目的主页文件,是经过转向得到的,因为Struts2不能再直接访问FreeMarker的物理文件了,就必须跳转一下,当然这个掉转动作里可以安排一些操作。
src目录结构如下:
项目本身的ftl解析不直接使用FreeMaker提供的解析器,而是手工设置的一个。Json组件也是手工设置的。就有了org开头的包
Pi包下就是项目的应用包和核心包。
app/action下是Struts2的Action文件,负责流程控制
app/service下是抽象出的service,可以根据个人习惯进行代码书写,这里放置的是SQL语句和直接SQL语句的方法。
应用包的层次不是很多,完全可以满足中小应用的需求,当然您也可以根据自身的需要进行改造。这里仅基于最简单的方式。
core/bean下是Bean的管理器,它负责从Spring上下文中按照名称返回所需的bean
core/common下是一些通用的配置,比如登录拦截器,异常拦截器,基础Action和Service定义等。
core/util下是自定义的工具类了。没什么多说的。
Constants.java是放置系统所需的一些常量配置。
resources目录结构如下:
这些都是见名知意的配置,等到后面再详细解释。
整个项目的结构就说完了,后续将从web.xml入手,开始逐一解释这套开发框架。
同时欢迎大家给出宝贵意见和经验。所有内容均为本人原创手写,谢绝转载,谢谢!
(未完待续)