J2EE项目开发指南.docx
- 文档编号:14800345
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:69
- 大小:406.39KB
J2EE项目开发指南.docx
《J2EE项目开发指南.docx》由会员分享,可在线阅读,更多相关《J2EE项目开发指南.docx(69页珍藏版)》请在冰点文库上搜索。
J2EE项目开发指南
长沙思文信息技术有限公司
密级:
仅限长沙思文信息技术有限公司内部使用
J2EE项目开发指南
编写:
编写日期:
审核:
审核日期:
长沙思文信息技术有限公司
软件工厂J2EE项目开发指南
1概要说明
1.1概要说明
软件工厂J2EE项目开发规范是对J2EE项目开发的规范化说明文档,希望通过本文档能够规范J2EE实训项目的开发过程,降低项目开发的出错率,提高学员项目开发效率。
以下以DEMO及SYSTEM业务模块为例:
项目路径为D:
\softfactory,应用代码(web应用名)为softfactory进行规范说明。
(修改服务器路径)
1.2内容
本文档包含如下内容:
✓框架体系说明
✓项目开发指南
✓开发规范
✓开发环境搭建
1.3专用语说明
为了便于描述,下面对文档中简略用词统一进行说明:
✓长沙思文信息技术有限公司软件工厂,统一简称为“软件工厂”。
✓在系统中专门用于传送或承载数据的类(如:
POJO、DTO等)都抽象为“领域对象”。
2框架体系说明
2.1总体架构图
注意:
●调用循序为箭头所指方向,不允许反向调用
●各层之间不允许跨层调用
●业务调用近返回的POJO对象可以在JSP页面使用但不能对POJO属性更改
2.2框架Spring容器结构
说明:
●框架中Spring的ApplicationContext型成了父子关系。
●框架基础的ApplicationContext负责管理DataSource、SessionFactory、Manager等基础组件。
●Struts各模块的ApplicationContext负责管理本模块对应Action的基础组件。
●各模块Action如果要访问基础Manger组件,则会自动到框架基础ApplicationContext中查找。
2.3框架结构说明
2.3.1数据访问层
作用:
完成数据库访问操作。
基础组件:
com.newer.core.dao.AbstractSupportDao
说明:
1.AbstractSupportDao提供通常的增、删、改、查及分页查询等到操作。
2.具体的通用方法说明,参考附录一AbstractSupportDao类基础方法说明。
2.3.2业务控制层
作用:
完成业务操作及视图控制转发操作。
基础组件:
com.newer.core.web.StrutsAction、com.newer.core.web.StrutsEntityAction
说明:
1.StrutsAction扩展Struts的Action类,提供常用的数据绑定、客户端缓存处理、错误信息输出等功能。
请注意:
经过本实训框架的特别处理,使得框架使用者能够在StrutsAction子类中添加多个业务控制转发方法,其效果与DispatchAction一样。
2.StrutsEntityAction扩展StrutsAction封装了常用的标准增、删、改、查等七大操作流程。
3.具体的方法说明,参考附录二业务控制层StrutsAction、StrutsEntityAction基础方法说明。
2.3.3用户视图层
作用:
向用户提示数据录入、数据展示及数据格式验证等功能。
基础组件:
commons/taglibs.jsp、commons/meta.jsp
说明:
1.taglibs.jsp为系统内常用标签引入页面,
2.meta.jsp为系统内的JS及CSS样式表引入页面。
3.具体的说明,参看工程目录中的实际文件。
2.3.4日志服务组件
作用:
记录系统工作日志,备查。
基础组件:
resources/log4j.properties配置文件、数据库中LOG4J_LOG表、数据访问层及业务控制层中提供的日志记录器。
说明:
重要的操作日志要求在数据访问层,业务控制层操作时进行日志记录。
2.4框架目录结构及关键文件说明
2.4.1总体说明
目录或文件
功用
备注
Softfactory
项目根目录
softfactory/resources
配置文件存放目录
softfactory/business
Java业务源代码目录
softfactory/pojo
POJO类目录
softfactory/test
测试源代码存放目录
softfactory/WebRoot
页面根目录
2.4.2配置文件存放目录说明
目录或文件
功用
备注
ehcache/ehcache.xml
Ehcache缓存配置文件
i18n
系统错误处理国际化文件及编译命令
Spring
Spring配置文件
log4j.properties
Log4j配置文件
hibernate.properties和jdbc.properties
被Spring使用的Hibernate及数据库配置文件
2.4.3框架核心Java代码目录说明
目录或文件
功用
备注
core/com/newer/core
框架核心代码根目录
Commons
存放通用代码目录
Components
系统扩展的组件代码根目录
Dao
存放数据访问层基础代码
Exception
存放异常类代码
Manager
存放有关系统业务及用户管理的基础代码
plugins/menu
存放系统菜单管理抽象代码
Util
存放系统通用工具类代码
Web
存入框架WEB层相关代码
2.4.4系统业务Java代码目录说明
目录或文件
功用
备注
business/com/newer/business
系统业务代码存放目录
Pojo
Hibernate映射实体及映射文件存放处
Demo
DEMO业务模块代码存放处
System
SYSTEM管理模块代码存放处
Dto
各业务模块数据传输对象存放目录
Manager
各业务模块数据访问对象存放目录
Web
各业务模块WEB层对对象存放目录
2.4.5系统POJO目录说明
目录或文件
功用
备注
pojo/com/newer/business/pojo
POJO类及相关配置文件存放目录
Pojo
Hibernate映射实体存放目录
Hbm
Hibernate映射文件存放目录
2.4.6系统JSP页面目录说明
目录或文件
功用
备注
WebRoot
系统WEB层相关的文件及配置存放目录
Commons
公用JSP页面存放处
meta.jsp
公用JS及CSS引入文件
taglibs.jsp
公用标签引入文件
Components
页面级公用组件存放目录
Demo
DEMO业务模块相对应的JSP页面存放目录
xxxlist.jsp
某业务列表页面
xxxedit.jsp
某业务新增及修改页面
System
SYSTEM业务模块相对应的JSP页面存放目录
Errors
错误处理相关的JSP页面存入目录
Images
图片存放目录
Scripts
自定义JAVASCRIPT文件存放目录
Styles
自定义CSS文件放目录
WEB-INF
站点配置根目录
Config
各业务模块Struts配置文件存放目录
struts-config-xxx.xml
某业务模块的Struts配置文件
Lib
系统相关Jar包存放目录
Tld
WEB所用标签描述文件存放目录
web.xml
WEB站点配置文件
base-config.xml
Struts各模块公共配置文件
3项目开发指南
3.1总体说明
3.1.1总体开发流程
3.1.2标准开发模式
⏹标准业务流程
经过分析发现,对于通用功能来说,通常就包括7种标准动作:
对应com.newer.core.web.action.StrutsEntityAction类中定义的7个方法
//查询并对数据进行分页显示,并可以输入相应的查询条件。
/**
*分页列出对象的Action函数.
*/
publicActionForwardlist(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse);
//察看详细结果
/**
*查看业务对象(不能修改)的Action函数.
*/
publicActionForwardview(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse);
//准备新增记录,即准备显示新增页面数据
/**
*显示新建对象Form的Action函数.
*/
publicActionForwardcreate(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse);
//准备修改记录,即准备显示修改页面数据
/**
*显示修改对象Form的Action函数.
*/
publicActionForwardedit(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse);
//新增及修改时,对数据进行保存的操作
/**
*保存对象的Action函数.
*/
publicActionForwardsave(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse);
//删除记录的操作
/**
*删除单个对象的Action函数.
*/
publicActionForwarddelete(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse);
对于一个标准功能来说,对应以上7个标准动作,为此对应3个JSP文件。
如表role对应:
●roleeidt.jsp新增、更新
●rolelist.jsp分页查询页面
●roleview.jsp查看页面(由于业务简单,DEMO模块中没有提供)
⏹非标准业务流程
对于非标准业务操作流程处理情况,可从com.newer.core.web.action.StrutsAction扩展,定义特殊业务操作流程。
3.1.3参考实例说明
对于DEMO及SYSTEM业务模块代码中,DEMO业务模块用于演示非标准业务流程的开发模式,SYSTEM业务模块用于演示标准流程的开发模式。
3.2开发步骤说明
3.2.1总体说明
我们以演示模块(DEMO)及系统管理模块(SYSTEM)为例进行开发步骤说明,并且DEMO业务模块为SYSTEM业务模块的简化版。
DEMO业务模块中的业务控层中所有的Action都是从StrutsAction开始扩展,并没有从StrutsEntityAction扩展,目的是演示对于七大标准操作流程不加封装的原始代码的输写过程。
标准流程示例以SYSTEM业务模块中的角色管理为例进行开发流程说明。
非标准流程示例以DEMO业务模块中的角色管理为例进行开发流程说明。
3.2.2数据库设计
首先,我们要设计好数据库,频繁的变更数据库结构是项目设计混乱的体现。
在这里我们要用到工具SybasePowerDesigner9,在平台中心的FTP上有Beta版下载。
我们用PowerDesigner设计数据库,里面包含几个表。
保存为demo.pdm。
数据库脚本具体内容请参见工程,相应文件位于:
[工程所在目录]/db/sql.txt文件中
3.2.3编写数据库映射实体类及HBM配置文件
可以手动编写,也可以与用MyEclipse编辑工具生成实体类与ORM映射文件。
类文件及ORM映射文件分别存放于pjojo文件夹下的com.newer.business.pojo、com.newer.business.pojo.hbm包中。
请注意:
POJO类以及映射文件存放的位置是固定的,否则无法加载hbm文件。
因为hbm文件的加载过程是框架自动进行的,无需在application-context-db.xml文件中配置。
具体内容参见工程,相应文件位于:
[工程所在目录]pojo/com/newer/business/pojo/目录中。
3.2.4添加数据访问组件(Dao层)
所有的数据访问组件从AbstractSupportDao继承,并且通过泛型方式申明数据访问组件管理的实体类。
例如:
/**
*角色管理类
*@author司马旭
*/
publicclassRoleManagerextendsAbstractSupportDao
注意:
如果对于特殊业务的要求(如需要多条件查询),可以对AbstractSupportDao类方法重写或进一步扩展。
具体内容参见工程,相应文件位于:
[工程所在目录]
/business/com/newer/business/demo/manager
/business/com/newer/business/system/manager。
对于标准流程及非标准流程数据访问代码是一致的。
3.2.5将数据访问组件交Spring的容器托管
将上一步开发的数据访问组件加入到Spring的配置文件中,具体参考配置文件/resources/spring/application-context-manager.xml
例如:
class="com.newer.business.demo.manager.RoleManager"/> 3.2.6添加业务控制组件(Struts的Action) 对于符合七大标准流程操作业务应从StrutsEntityAction继承,并通过泛型方式申明实体类及实体管理类,然后再重写相应流程有关的回调处理函数。 例如: /** *角色管理业务流程处理类 *@author司马旭 * */ publicclassRoleManagerActionextendsStrutsEntityAction 一般来说,更常用的是下面这种方式: 对于非标准流程操作的业务控制Action应从StrutsAction继承,开始编写相应的业务流程处理方法。 例如: /** *角色管理业务控制类 *@author司马旭 */ publicclassRoleManagerActionextendsStrutsAction 需要注意的是: 1.对于Action中需要使用的数据访问组件,如RoleManager,我们使用动态注入的方式得到RoleManager对象。 具体过程如下: a)在softfactory/resources/spring/application-context-manager.xml文件中,添加bean: RoleManager class="com.newer.business.demo.manager.RoleManager"/> b)在Action中使用setter注入: //创建一个角色服务类实例 protectedRoleManagerroleManagerDemo; publicvoidsetRoleManagerDemo(RoleManagerroleManagerDemo){ this.roleManagerDemo=roleManagerDemo; } c)在方法中使用RoleManager完成业务的调用。 在视图层与业务控制间的数据传递,可以采用ActionForm或DTO。 注意: 单个StrutsAction只能对应一个ActionForm,因此如果想用一个业务控制完成多种业务操作时,数据传递方案可另选DTO形式,数据绑定规则参考标准代码。 参考标准代码,如果有事务则加入事务处理。 访问Action以完成真正的业务逻辑。 具体内容参见工程,相应文件位于: [工程所在目录]/com/newer/business/demo/web、[工程所在目录]/com/newer/business/system/web目录。 至此,我们后台的编程任务已经结束。 3.2.7编写Struts配置信息 我们使用多模块配置文件的方式。 传统的做法为: 在相应业务模块的Struts-config-模块名称.xml配置文件中加入相应的Action配置。 但现在框架中采取更加自动化的加载方式,使得我们在开发过程中,只需将配置文件存放在固定的位置,即可完成加载自动工作。 配置文件存放的规则如下: 1)存放位置: WebRoot/WEB-INF/config/目录 2)配置文件命名规范: struts-config-[模块名].xml 其中: struts-config-为固定部分,模块名为子业务模块的名字(使用英文小写),该模块名应在对应的url请求地址中得到体现。 另外,如果某模块的配置信息需要拆分到若干个配置文件中,则这些文件的命名应分别为: |_struts-config-[模块名01].xml |_struts-config-[模块名02].xml |_struts-config-[模块名03].xml |_...... 3)各配置文件中的Action结点属性parameter不需要在配置文件中编写,系统自动加载过程会设置为默认值“action”。 例如: WebRoot/WEB-INF/config/struts-config-demo.xml配置文件 系统运行时会自动加载这个文件,并实例化为demo业务模块,struts-config-demo.xml文件中配置的Action: --角色管理配置--> type="com……RoleManagerAction"name="roleForm"input="/roleedit.jsp"parameter="action"> …… 的访问路径变为: demo/roleservice.do? action=xxxx。 具体内容参见工程,相应文件位于: [工程所在目录]/WebRoot/WEB-INF/config/目录。 3.2.8将业务控制组件交Spring容器托管 各个业务模块的Action类将由系统框架自动加载,并交Spring容器托管。 业务模块的Spring容器与基础组件的Spring容器型成了一个父子关系。 请求调用步骤: 1、请求到达Struts的ActionServlet。 2、ActionServlet将解析后得知是A模块的调用,于是从A模块自身对应的SpringApplicationContext中查找到相关的Action类,并实例化。 3、Struts模块A的ApplicationContext实例化Action类时,会自动从父级的Application中查找到Action需要的Manager类,并将其注入到Action中。 4、当ActionServlet查找到Action后,执行业务处理方法,完成请求调用。 3.2.9编写JSP页面 参考标准业务流程JSP模板代码,修改相应的页面元素,完成JSP页面代码编写。 具体内容参见工程,相应文件位于: [工程所在目录]/WebRoot/demo/、[工程所在目录]/WebRoot/system/目录。 3.3应用框架开发关键要点说明 3.3.1JSP页面开发要点说明 JSP页面开发要点及说明如下: 1、所有业务级JSP页面存放路径为对应的业务模块的JSP文件夹中。 例如: WebRoot\demo、WebRoot\system目录,其中demo、system为业务模块名称。 2、对新增、修改业务要求在页面用本框架提供的JS做数据格式较验。 例如: 角色管理业务中的roleedit.jsp页面。 window.onload=function(){ //在原有的数据验证原型基础上增加新的数据验证 Validation.addAllThese([ //验证数据长度只能有6到10位 ['validate-length-(6-10)','',function(v){ returnValidation.get('IsEmpty').test(v)||/^.{6,10}$/.test(v); }], …… ]); //数据验证回调函数 varformCallback=function(result,form){ //alert(result); } varformValidateInfoArray=[ {name: "name",className: "requiredvalidate-length-(2-10)",title: "角色名称不能为空,且长度只能为2至10位"}, …… ]; //创建表单验证器 varvalid=newValidation('roleForm',{immediate: true,useTitles: true,useAllErr: false,isFormSubmit: true,onFormValidate: formCallback,formValidateInfoArray: formValidateInfoArray}); }; 3、列表显示页面,查询条件DTO与表单数据值绑定采用jodd: form标签实现,并且在表单元素可以带附加前缀如”search_”,同时还要求DTO对象从Sessi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2EE 项目 开发 指南