每层应该有一个单独的项目吗?

时间:2010-10-05 11:10:42

标签: java web-services web-applications

过去一年左右我一直在写一个网络应用程序,我感觉我的结构很差,但我不确定它应该是什么样子。

应用模型物流因此目前有两个主要部分 - 地理和网络。

域+业务层

我在两个独立的项目中分离了网络和地理位置,包含域名,持久性和业务逻辑。还有一个服务层,它围绕对DAO的调用包装事务,以便以后可以通过Web服务调用它。

演示文稿图层

我有一个项目有控制器,JSP,javascript,css等。我不确定这是否是正确的做法。 javascript使用DWR调用Web服务层。

网络服务层

我认为这是我真正出错的地方。 Web服务有一个项目,包含来自网络和地理项目的服务层对象的实例。

为什么我认为我出错了

我即将向应用程序添加另一个段,该段从旧系统查询工资并在Web前端显示数据。最初我将继续采用与上述相同的方法:

  1. 实施域/ dao /服务项目
  2. 将Web服务添加到Web服务项目以查询新域项目
  3. 在表示层项目中创建视图。
  4. 我觉得它是应用程序的一个单独部分,它应该更加松散耦合..我读过关于SOA,原理听起来真的很好,但我不知道如何到达那里。我的想法是为这个包含所有层的新段创建一个单独的项目,因此它完全是独立的。这是我一直以来应该做的吗?

    非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

一个相当传统的EAR结构,它包装你的表示层(如果你愿意,它可以是你的WAR,它可以是一个单独的项目)和你的核心业务逻辑/ DAO层(你的单个JAR)。

随着您真正为其他人提供访问的公共API,Web服务会变得更加有趣。例如,您可能希望将Web服务层拆分为单独的项目,这样您就可以发布Web服务的1.2版本与1.1版本一起使用,这两个版本都与1.1核心兼容。

总而言之,它实际上只取决于(没有双关语)你希望这些不同部分彼此依赖的依赖关系。如果你最终将它们分开,我可以推荐Maven或ANT / Ivy来帮助你构建它。