我正在启动一个新的Java项目,它使用Hibernate和标准的MVC体系结构。我刚刚开始布局项目结构,在这样做的时候,我开始环顾四周,看看在这方面是否有任何标准,关于控制器应该去哪里,以及通常情况下最好的布局方法。不过,我并没有找到任何指引。
所以我想知道的是
发布于 2009-01-31 17:33:53
为了继续我以前的回答,我有很多网络项目。在它们中,src下的结构或多或少是相同的。包大致分为三个逻辑层。
第一个是表示层,正如您所说的,用于servlet、应用程序侦听器和帮助程序。
第二,hibernate模型/db访问层有一个层。业务逻辑的第三层。然而,有时这些层之间的边界并不清楚。如果您使用hibernate进行db访问,那么模型是由hibernate类定义的,所以我将它们放在与dao对象相同的区域中。例如,com.sample.model保存hibernate数据对象,com.sample.model.dao保存dao对象。
如果直接使用jdbc (通常与Spring一起使用),那么有时我发现更方便地将数据对象放置到业务逻辑层而不是db访问层。
(其余部分通常属于业务层)。
发布于 2009-01-31 20:33:44
这真的取决于你的网络框架。
例如,如果您使用Wicket,java文件和网页共存在同一个目录中,而在大多数其他框架中,页面(.jsp文件或其他什么是您的演示引擎)和代码隐藏的内容(java文件)是完全独立的。
因此,请阅读框架附带的文档(Spring、Struts、JSFe.t.c)。
另一个好建议是使用Maven原型为您的特定框架生成框架。有些web框架(如seam)甚至有自己的代码生成工具,为您的web项目奠定了基础。
对于src目录,我唯一的好建议(Yoni没有提到)是根据业务目的而不是根据类型/层来制作包。
这意味着包
而不是
第二种结构过于通用,倾向于围绕带有无关内容的大型包进行解析,而且很难维护。
发布于 2009-01-31 14:54:30
首先,遵循流行的ide、ala Eclipse、Netbeans等传统结构。例如,在Eclipse中,所有的东西都已经用WEB和META文件夹安排好了,所以打包和部署很容易。类源代码(通常在src下)自动复制到WEB/ Classes中。还有其他几点考虑:
https://stackoverflow.com/questions/498917
复制相似问题