本人在从事java开发多年,整理出一套能够直接上手开发的J2EE架构。宗旨是提高公司项目研发的效率,减少项目研发的过程中花大时间去熟悉,以及提练出在开发过程中重复的功能。本架构具有一般项目中所需要的基本功能如:用户管理,日志管理,数据备份,代码生成和系统有效性验证。
在此详细描述一下架构各部分功能实现使用的技术点,也请朋友们提出宝贵修改意见。
本原型系统使用java语言开发,使用的web容器是tomcat
基本架构技术:
- Spring:
- 使用IOC依赖注入,主要目的是降低代码之间的耦合度,通过spring的桥梁达到管理struts与hibenate,使各个代码之间不需要在代码之间引用,通过spring的配置文件完成相互关联。
- AOP数据库事物:能够通过切面注入方式完成对相应的代码操作,调用相应的数据库事务。
- 定时器:通过spring配置,达到定时操作时间代码片段。主要实现功能有:缓存定时加载,数据定时备份….
- Hibernate:ORM对象-关系映射,封装数据库基本操作接口。
- Struts:页面操作前后台交互,一般使用到需要页面完全调用,避免URL直接访问jsp,而暴露文件在项目中的物理路径,本系统用到的功能有 登录和文件上传。
- DWR:一个AJAX框架,一般在页面局部数据更新,无须整个页面数据更新,提高用户使用体验度。
- Jconfig:系统常量配置与获取,比如:数据备份功能参数配置..
- Velocity:页面模板引擎,本原型中使用到的功能是原型代码生成。通过velocity完成对基础代码的生成。
- Xfire:Webservice框架,发布系统中服务,供外部系统调用。
- Log4j:日志管理器,通过配置log4j.properties记录系统中的各个等级的日志信息。
- JDOM:XML解析
前台技术:
- 对话框:artdialog框架,
- 日历控件:My97DatePicker
- 树形选择器:zTree
- 统计报表图形:fusionCharts
- 翻页控件,表单验证
- 文件上传与管理功能
- Js操作工具类,自己封装开发,主要实现,时间格式转字符,字符转时间,字符串操作…
原型拥有的基本功能:
- 基础代码生成器:通过一个表结构,能够生成一个简单的增删改查业务代码,包括前台页面,后台代码和配 置文件。
- 用户登录与登出
- 用户管理:用户注册,修改,密码管理,职位管理。
- 功能菜单配置:配置各个功能菜单,及菜单之间的层级关系。
- 角色对应功能菜单管理
- 用户对应角色管理
- 数据备份功能(数据库文件备份,代码文件备份,上传资源备份)
- 日志记录功能(登录日志,操作日志)
- 原型系统验证系统:时间和MAC验证,如果时间过期了就进不了系统,防止一些难缠客户。
总结:本原型系统可以说完成了除业务之外的所有基础功能,能够达到项目启动之后只需关注业务的实现,无须关注架构的问题。当然有些用户需要的页面自定义那是需要后续修改的,基本美工换一些样式就能达到效果。
后续还要有一些完善,请各位同仁多提宝贵意见。