前一阵子我利用业余时间帮朋友开发了一个库存管理系统,虽然系统不算复杂,但是麻雀须小五脏俱全,系统包括了一般企业应用常见的功能如报表等。下图为系统的截屏。
由于最近有空,我觉得有必要把工程清理一下,作为一个模板。那以后再编写类似项目的时候,简单套用即可。下图为系统的总体设计图。
由上图,我们可以看出系统使用了spring、hibernete、seam、jsf、richfaces和birt等开源框架。相信大家如果有留意企业开发技术的话,对上述名词应该不会陌生。在整合这些框架的时候,为了使它们更能满足现实世界的需求和更易用,我进行了一些扩展,起名为ssf(simple
seam framework,简单seam框架)。
使用ssf的好处
由于在以往的工作中经常使用上述框架,我发现它们都或多或少都存在一些不足之处,ssf会尝试完善它们。
- 我们在设计数据库表的时候都会加几个用于做安全审查(audit)的列,如记录的创建人、创建时间、最后修改人和修改时间等。而且,为了实现数据乐观锁,在每个表里加上一个版本列。在ssf所有的数据库实体(entity)都继承虚基类com.whatisjee.ssf.domain.entity.abstractentity。它含有上面提及的所有与业务无关的信息和对数据库映射元数据。如此一来,我们在就不用在每个实体类里重复一遍。另外,通过hibernate的拦截器(interceptor),在持久化实体时将上述信息填入数据库。
- 在spring
2.5版本里,如果我们选择使用annotation配置bean,默认是不能将配置资源注入到bean之中,所以ssf也添加这个功能,实现原理大家可以参考我的以前写一篇文章《扩展spring——使用
annotation将配置资源注入到bean中》。
- 虽然seam针对在jsf里进行数据分页和排序提供了解决方法,但我认为此方法过于简陋,而且不能使用richfaces的分页控件进行分页。通过ssf数据访问方式,您可以完美结合richfaces的分页控件简单地实现分页功能。
- 默认的jsf的错误提示方式太不用户友好,不能满足当今用户对界面越来越高的要求。通过扩展seam的控件的展现方式,当输入框出现错误输入的情况,它们将会被高亮,当用户将光标移进这些输入框,错误信息将浮动显示在其旁边。如下图所以。
- 通过birt提供的报表查看器(report
viewer)集成报表工具的时候,如果不加额外的限制,只要别人知道url,完全可以不用登录系统也可以查看系统报表。这显然不是我们愿意看到的。通过继承org.eclipse.birt.report.filter.viewerfilter,ssf可以限制只有已经授权的用户方可查看报表。
上面列举了ssf对不同框架的部分改进。当然,使用ssf的最大好处还是免去您对如何完美整合这些时下最流行框架的操心。
开始体验ssf
以前的广告有一种常见的做法,就是在对商品大吹特吹之后,蹦出一个家伙问一句:“请问我可以在那里买到xxx呢?”如果大家已经被我上面的广告弄得跃跃欲试的话,可以到google
code下面用svn下载工程源代码。不过在此之前大家需要安装几个软件:
- mysql 5.x,可以到下载。它的安装过程很简单,如果你想省事呢,直接把mysql作为自动启动的服务。当然,你也可以设成手工启动,需要的的时候才启动它。
- eclipse ide for java ee developers 3.5.2,之所以不用最新版,是因为jboss
tools最新发布版本3.1只支持eclipse 3.5.2。请点击下载,下完解压到某个目录即可。
- jboss tools 3.2,用来支持seam开发。下载地址:。
- tomcat 6.x,下载地址:。
下载完成之后,可以参考我制作的视频进行安装和配置(当然这是我第一次制作视频,做得不好的地方请大家多提意见)。当然如果你已经有了ide,可以直接到google
code()的svn()获取工程代码。
小结
通过上面的介绍,相信大家已经对ssf有部分了解,甚至亲自试用了一下。我会在以后的文章时,就如何在ssf上开发相应的需求进行更详细的讲解。感兴趣的朋友,敬请关注!:-)
posted on 2010-11-15 08:48
max 阅读(6990)
评论(7) 编辑 收藏 所属分类:
seam系列