【问题标题】:Web, Model, Service & Repository to Divide Into Separate Projects, Spring MVCWeb、模型、服务和存储库划分为单独的项目,Spring MVC
【发布时间】:2013-09-27 17:53:04
【问题描述】:

我有一个使用 Maven 和 Tomcat 的 MVC Spring 项目。我正在尝试将项目与子项目分开,例如

  ---Web (Controller and Jsp's) 
 |
  ---Model ( Model classes)
 |
  ---Service
 |
  ---Repository

我想让一切都分开干净。我正在使用 Spring MVC & Maven 和 TomCat。我应该为这些方法使用 Maven 模块还是最好问我应该使用哪种方法。

【问题讨论】:

  • 使用哪种方法取决于您的项目,但我不会基于层而是基于功能(如用户、订单等)进行分离。更多的是功能分离,然后是技术分离。您可能希望将 Web 和功能部分分开,但这取决于您。我推荐this book
  • 在我看来,分离对数据库的访问、定义模型和业务逻辑会更清晰。正如您所说,我还将在业务逻辑中包含一些子模块,具体取决于功能。坦克给你时间

标签: maven spring-mvc maven-module


【解决方案1】:

你有三个选择:

  1. 面向服务的编程模式。

  2. OSGi 模块化。

  3. 自定义框架使用xml数据库的约定。

第三,我可以说你可以在 Dao 层使用你的自定义约定,通过使用集合来存储数据,例如,如果要保存对象,例如 obj{param1,param2} 将xml序列化为

<attr1>param1<attr1>

等到Dao层并通过属性迭代添加到XML,然后序列化为xml并存储它。

但是假设所有这些方法都不会减少开发代码的大小!但是您可以在其他项目中重用许多代码。

【讨论】:

  • 首先我使用了模块方法。但问题是它可能看起来很干净,但在后台所有模块都相互耦合,在我的情况下可能会在未来引起问题。然后我将我的解决方案分成了 4 个独立的项目,分别是 WebProject、ModelProject、ServiceProject、RepositoryProject。这已经够干净了。在我看来:) 感谢您的回复。
  • 那么让我们问一下您的存储库模块是否适用于任何项目?或为该项目定制?如何相互交谈模块?即使它不是一个项目的通用模块和独立模块,为什么不使用层而不是 3 个项目?
猜你喜欢
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 2017-03-22
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多