无忧无卤

鸟在笼中,恨关羽不能张飞;人处世上,要八戒更需悟空

开发ssh框架程序推荐的目录结构(转)

在用ssh开发web应用时,需要对生成的各个类文件进行组织,下面就对一个可行的目录方案进行介绍:

譬如应用中有一个用户管理模块,则在公共包下建立一个user包,如该公共包可以为com.simon.oa,

在user包下包括如下子包

1、controler包

该包放置各种struts的action。

 

2、dao包

该包放置各类dao(data access object),也就是放置对数据库访问的实现类,在用myeclipse中的“Hibernate Reverse Engineering”进行反向操作时在某一个目录中就会生成对应某个表的DAO,生成后可将该DAO拖到dao包中。在某些应用中将DAO作为接口,在该接口中包括所有对数据库的操作方法,然后在dao包建立一个hibernate包,在hibernate包中放置对DAO接口的实现,譬如:UserDAO接口有一个实现类为UserDaoImpl,将该类放置到hibernate包中,实际的开发倾向于后一种方式,因为对这个DAO接口可以实现spring的IoC操作。(不知道myeclipse对此是怎么考虑的,这个问题让我纠缠了很久,误将DAO理解成一个能够进行实际操作的类,而不是一个接口,以后开发要注意)

 

3、model包

该包中放置hibernate反向工程生成的bean和该bean对应的.hbm.xml文件。

 

4、service包

该包放置业务操作类,譬如用户服务类,一般情况将该用户操作类提取一个接口,然后在service包下生成一个impl包,在impl包中才放置用户操作接口的实现类。该用户接口实现类中调用DAO接口对数据库进行操作,而调用该实现类的方法在struts的action中。

 

5、vo包(value object)

vo包中的中包括struts中使用的POJO及actionform等信息。

VO:  Value Object
DTO: Data Transfer Object
个人理解VO和DTO是类似的东西,原则上VO和DTO只有Public Fields,主要用于进程之间数据传递的问题,VO和DTO不会传递到表示层,在业务层就会被吸收。但看到很多人在建立VO和DTO时,也含有Setter,Getter属性和一些其它的辅助方法,这也无可厚非,我自己也不能确定这对不对。

posted on 2008-03-29 18:59 beyond 阅读(2175) 评论(0)  编辑  收藏


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


网站导航:
 

导航

<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

常用链接

留言簿(1)

随笔档案

相册

搜索

最新评论

  • 1. re: 近期任务
  • 大哥 等着你的drools5翻译呢 drools4把我搞死了 如果你有关于drools4的心得的话请指教 感觉自己使用的不是很好 望赐教 QQ:53816565 谢谢
  • --sunnidy
  • 2. re: Mysql迁移到Oracle
  • 不错,看样子支持大多数数据库迁移到oracle,不知道是否支持从oracle转出?
  • --FastUnit

阅读排行榜

评论排行榜