Java网项目结构的最佳做法
-
20-08-2019 - |
题
我开始一个新的Java网项目,该项目使用的休眠和标准的视的架构。我刚开始的布局的项目结构,而这样做我开始看看周围,看看是否有任何标准在这个区域中,有关控制器应该去和一般的最佳方法奠定一切。但是我还没有真正发现的任何准则。
所以我想知道的是
- 是任何人知道任何最好的实践指导方针的布局Java网项目?
- 任何人都不会有一个特定的硬性规定,他们始终遵循针对不同类型的项目?
- 人们倾向于分包的不同层,例如介绍、业务和应用程序?
解决方案
继续我以前的回答,我有许多网络的项目。在所有这些的结构下src或多或少是一样的。包装的大致分为3逻辑层。
首先是介绍层,如你所说,为servlet、应用程序的听众,并帮手。
第二,有一个层对于休眠状态的模型/数据库访问层。第三层的商务逻辑。然而,有时边界的这些层之间不清楚。如果您使用的休眠对数据库访问,然后该模型的定义是休眠类的所以我把它们放在同一地区的道的对象。E.g。com.样品。模式保持数据对象的休眠和com.样品。模型。岛举行该岛的对象。
如果使用直jdbc(通常春天),然后有时候我觉得它更方便的把数据的对象更密切的业务逻辑层,而不是与数据库访问层。
(剩下的东西通常属于业务层)。
其他提示
这真的取决于你的网的框架。
例如,如果您使用的检票口、java文件和网页的共同存在的同一目录的话 在大多数其他框架,网页(.jsp文件或者不管是什么你的演讲发动机)和 代码隐藏的东西(java文件)是完全分开。
因此,阅读本文件附带你框架(软弹簧,支柱,JSF e。t.c)。
另一个很好的建议是使用家原型生成的骨架为你的特定框架。一些网络的框架(例如缝)甚至有自己的代码生成的工具奠定了基础web项目。
我只有好的建议(也就是未提及通过Yoni)的来源目录 使包根据业务目的,而不是根据种类/层
这意味着包
- com.(.myproject.客户
- com.(.myproject.部门
- com.(.myproject.帐单
- com.(.myproject.报告
- com.(.myproject.管理员
而不
- com.(.myproject.实体
- com.(.myproject.表
- com.(.myproject.图
- com.(.myproject.的对话
- com.(.myproject.servlet
第二个结构过于笼统,往往解决周围巨大的软件包无关的东西,很难维护。
第一,遵循传统的结构的一个受欢迎的ide,阿拉蚀,同时还有演讲,等等。在日食,例如,一切都安排已经有了一个网INF和元INF文件夹,所以包装和部署是容易的。类的源代码(通常在src)是自动复制到WEB-INF/课程。还有一些其他的考虑因素:
- 如果您使用的软,那么这是可能的,你不必访问您的Jsp。如果是这样,保持JSP源代码下网INF/jsp,出于安全原因。
- 同样,保留的定制标签的文件在网INF/标签。
- 保持javascript文件在js文件夹,css文件在风格上的文件夹等。所有文件夹应在同一水平,如WEB-INF来模仿一个真正的部署。
- 这是很好的独立代码进入包根据层。很明显你的休眠dao不需要在相同的封装作你的servlet.
- 如果你结束了太多的servlet在同一软件包,考虑子装他们给予的功能,但是它是好的,他们有一个共同的祖先包装的-这有助于可读性。
project
|-- pom.xml
`-- src
`-- main
|-- java
`-- webapp
|-- WEB-INF
| `-- web.xml
`-- index.jsp
我已经包含了 java
文件夹在这里的例子,也许这是显而易见的,但它是留在上面的链接,对于一些原因。