随笔-34  评论-1965  文章-0  trackbacks-0

前一阵子我利用业余时间帮朋友开发了一个库存管理系统,虽然系统不算复杂,但是麻雀须小五脏俱全,系统包括了一般企业应用常见的功能如报表等。下图为系统的截屏。

screen capture of asms

由于最近有空,我觉得有必要把工程清理一下,作为一个模板。那以后再编写类似项目的时候,简单套用即可。下图为系统的总体设计图。

ssf overview

由上图,我们可以看出系统使用了spring、hibernete、seam、jsf、richfaces和birt等开源框架。相信大家如果有留意企业开发技术的话,对上述名词应该不会陌生。在整合这些框架的时候,为了使它们更能满足现实世界的需求和更易用,我进行了一些扩展,起名为ssf(simple seam framework,简单seam框架)。

使用ssf的好处

由于在以往的工作中经常使用上述框架,我发现它们都或多或少都存在一些不足之处,ssf会尝试完善它们。

  1. 我们在设计数据库表的时候都会加几个用于做安全审查(audit)的列,如记录的创建人、创建时间、最后修改人和修改时间等。而且,为了实现数据乐观锁,在每个表里加上一个版本列。在ssf所有的数据库实体(entity)都继承虚基类com.whatisjee.ssf.domain.entity.abstractentity。它含有上面提及的所有与业务无关的信息和对数据库映射元数据。如此一来,我们在就不用在每个实体类里重复一遍。另外,通过hibernate的拦截器(interceptor),在持久化实体时将上述信息填入数据库。
  2. 在spring 2.5版本里,如果我们选择使用annotation配置bean,默认是不能将配置资源注入到bean之中,所以ssf也添加这个功能,实现原理大家可以参考我的以前写一篇文章《扩展spring——使用 annotation将配置资源注入到bean中》。
  3. 虽然seam针对在jsf里进行数据分页和排序提供了解决方法,但我认为此方法过于简陋,而且不能使用richfaces的分页控件进行分页。通过ssf数据访问方式,您可以完美结合richfaces的分页控件简单地实现分页功能。

    pagine

  4. 默认的jsf的错误提示方式太不用户友好,不能满足当今用户对界面越来越高的要求。通过扩展seam的控件的展现方式,当输入框出现错误输入的情况,它们将会被高亮,当用户将光标移进这些输入框,错误信息将浮动显示在其旁边。如下图所以。
  5. error

  6. 通过birt提供的报表查看器(report viewer)集成报表工具的时候,如果不加额外的限制,只要别人知道url,完全可以不用登录系统也可以查看系统报表。这显然不是我们愿意看到的。通过继承org.eclipse.birt.report.filter.viewerfilter,ssf可以限制只有已经授权的用户方可查看报表。

上面列举了ssf对不同框架的部分改进。当然,使用ssf的最大好处还是免去您对如何完美整合这些时下最流行框架的操心。

开始体验ssf

以前的广告有一种常见的做法,就是在对商品大吹特吹之后,蹦出一个家伙问一句:“请问我可以在那里买到xxx呢?”如果大家已经被我上面的广告弄得跃跃欲试的话,可以到google code下面用svn下载工程源代码。不过在此之前大家需要安装几个软件:

  1. mysql 5.x,可以到下载。它的安装过程很简单,如果你想省事呢,直接把mysql作为自动启动的服务。当然,你也可以设成手工启动,需要的的时候才启动它。
  2. eclipse ide for java ee developers 3.5.2,之所以不用最新版,是因为jboss tools最新发布版本3.1只支持eclipse 3.5.2。请点击下载,下完解压到某个目录即可。
  3. jboss tools 3.2,用来支持seam开发。下载地址:。
  4. tomcat 6.x,下载地址:。

下载完成之后,可以参考我制作的视频进行安装和配置(当然这是我第一次制作视频,做得不好的地方请大家多提意见)。当然如果你已经有了ide,可以直接到google code()的svn()获取工程代码。

小结

通过上面的介绍,相信大家已经对ssf有部分了解,甚至亲自试用了一下。我会在以后的文章时,就如何在ssf上开发相应的需求进行更详细的讲解。感兴趣的朋友,敬请关注!:-)

posted on 2010-11-15 08:48 max 阅读(6990) 评论(7)  编辑  收藏 所属分类: seam系列

评论:
# re: ssf入门 2010-11-15 09:17 |
感谢楼主的精彩教程  回复  
  
# re: ssf入门 2010-11-15 14:51 |
不知道楼主同时使用spring和seam的原因何在啊?  回复  
  
# re: ssf入门[未登录] 2010-11-15 22:33 |
好,又学到东西了!  回复  
  
# re: ssf入门 2010-11-16 10:09 |
收藏了,关注后续  回复  
  
# re: ssf入门 2010-12-05 10:01 |
楼主,厉害啊,不知道你的验证高亮显示,鼠标移上去显示消息是怎样做的,能贴出代码吗?谢谢  回复  
  
# re: ssf入门 2010-12-05 10:17 |
哈哈,好大的过程,谢谢楼主,看到工程的代码了,先前只看了图,没有看下面的
  回复  
  
# re: ssf入门[未登录] 2010-12-20 16:32 |
你的报表界面怎么做的,挺好看  回复  
  

只有注册用户后才能发表评论。


网站导航:
              
 
网站地图