其它相关类的介绍
上一篇中记述了系统中关键的核心类,这里将继续讲述其他相关的辅助类,对理解这个系统还是很有帮助的。
在framework包下除了base外,还有utils、web两个包
utils下主要有Date转换工具、加密工具等,看代码一般就知道其含义了,这里就不在加以描述了。
web下BackUpDBUtil类,从名字上可以看出是备份数据库用的,由于采用的是内置的hsqldb数据库,一但系统崩溃造成不必要的损失,系统总采取了一些补救措施,BackUpDBUtil类就是最终来实施这一任务的关键所在。
从功能上来说,采取了定时计划备份和人工备份。人工备份这里暂且不表,因为涉及到具体的业务层代码了。这里说一下定时备份,ImportMask类和TimerPlugin类就是用来执行定时备份的,这里采用了简单的ava.util.TimerTask来实现,可以参考jdk的中文版,有很详细的说明,就不在啰嗦了。
还有一个重要的类是HsqlListener,它的主要功能是启动、关闭hsqldb,关于hsqldb可参考 关于采用hsqldb的一些说明这篇文章,具体实施可阅读代码,就不在讲述了。
以上讲述了其他几个比较基础的类,虽然所放置的位置值得探讨,这里只是作个功能上的描述,好容易一些读懂代码
接下来就是涉及到具体的业务开发了,先描述一下大致的功能
一般用户功能(默认用户名密码为test):
订单处理、查询
通过前面几篇文章的讲述,系统核心的部分基本上已经结束了。
为了更加清晰的描述整个系统的开发过程,下面想通过一个小的功能来讲述如何在这基础之上来开发的,当然主要是过程,具体类的内容可以参考源代码。
就拿订单(order)模块的订单处理功能来讲述:
需要建立的类有action:OrderAction.java
pojo:OrderInfo.java(hbm:OrderInfo.hbm.xml)
service:IOrderService.java,OrderServiceImpl.java
需要的jsp为orderInfo.jsp,以及相关配置文件(待会再讲)
下面一样一样的表述:
action:OrderAction.java
需要继承com.iplan.portal.framework.base.struts.BaseAction,所需要的Service都采用get、set方法来设置。Action类中方法采用统一的一定的规则,比如:select、list、edit、save、delete、search,后续的Action类都采用了这样的命名,有助于统一规划。
pojo部分,是对数据库表字段的映射,比较简单,可以手工自己编写,也可以采用HibernateSynchronizer等来完成
service:IOrderService.java,OrderServiceImpl.java
接口和实现。接口中的方法命名值得注意一下,一般采用get、save、update、delete+功能名,其中get方法涉及的比较多,所以根据实际需求来设置,通过by...,只是适合,规定下来就可以。
实现中需继承com.iplan.portal.framework.base.BaseService,这是所有服务类的基类,这里就是具体的业务实现过程,一般都会用到CommonDAO。
jsp没有什么特别之处,下面讲一下配置文件的信息
struts-config中的struts-config-order.xml,以pojo"OrderInfo"作为form-bean的属性,再配置一个action,其它的不用设置了。
action-servlets-config中的action-servlets-order.xml,以你刚刚配置的struts-config-order.xml中的action中的path属性值,配置一个bean,bean的name属性值就是模块名+path属性值。这个就是你真正需要的OrderAction,其间设置了所需要的Service
tiles-config中的tiles-defs-order.xml,来设置你在struts-config-order.xml配置的资源流转的jsp资源信息
validation-config中的validation-order.xml,设置你需要验证的表单信息,其中form中的name属性值就是你定义的form-bean的name属性值
最后把OrderInfo.hbm.xml文件追加到hibernate.cfg.xml中去,在ApplicationResources.properties对应的属性文件中追加相应的资源。运行你的服务器,可以展现你的画面了。
以上简单的介绍了一下,开发一个具体功能模块的过程,以作参考之用。
最后,说明几个遗漏的功能,作为最后的补充,采用struts+hibernate+spring开发的一个web系统系列暂时告一段落,希望有所帮助,谢谢!
附:
1、app-config下的applicationContext.xml,baseTransactionProxy下的transactionAttributes,没有详细的设定(它是为service服务的),这里只是做了个例子。
2、密码采用MD5加密,密码修改时显示的原始秘密为MD5值,没有改掉,留意一下。
生成Excle报表
贷款管理
基础信息的维护(客户、发货仓库、销售员-该系统中暂时还没有用到)
系统功能(修改密码、数据库备份、批量上载Excle数据到数据库中)
管理员功能(默认用户名密码为admin):
用户信息管理
区域设置管理
有些功能实在是做的很简单,只是符合实际操作就可以了,希望只是供学习之用