0

我即将开始一个项目。我们将使用Spring MVCRestEasySpring BatchSpring Security

为每一个都有一个模块是否有意义,例如:

Main_Project
   ---pom.xml
   ---Module_Project
         ---pom.xml
   ---Module_MVC
         ---pom.xml
   ---Module_Rest
         ---pom.xml
   ---Module_Batch
         ---pom.xml
   ---Module_Security
         ---pom.xml

不确定最佳做法是什么?或者,我应该使用一个模块吗?

谢谢,阿迪

4

3 回答 3

2

乍一看没有任何意义。

既然你已经知道你需要什么技术,我想你已经对如何组织自己的代码有了一个想法。这是您自己的代码组织,必须驱动您的模块(而不是您正在使用的框架)。

一种可行的通用方法(至少它可以作为为传统的基于 Web 的应用程序制定架构的起点):

  • 一个带有您的模型的模块(即数据库层、dao、持久 bean...) - 包装 jar
  • 一个带有控制器的模块(即访问数据库层、事务管理、业务逻辑......) - 包装 jar
  • 一个带有您的视图文件(如果有)(jsp,...)的模块(前层) - 打包大战
  • 一个带有您的 Web 服务定义(如果有)的模块(前层) - 打包大战
于 2013-04-02T09:42:20.263 回答
1

不要按框架对模块进行排序。(框架是您在需要它们的模块中添加的依赖项,可能像这样:

<project>
    <groupId>com.ourproject</groupId>
    <artifactId>myfeature</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    ...
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.2.2.RELEASE</version>
        </dependency>
    </dependencies>
</project>

如何组织您的项目有许多不同的方法。

我目前使用的方法是按照功能组织软件。然后通过良好的旧 java 包“细分”每个功能。通过这种方式,我将属于特定功能的业务逻辑、数据访问对象和特定资源打包到一个模块中。

好处是您不必费力寻找属于该功能的所有内容,允许您根据需要引入或删除功能。

缺点是您必须将所有功能模块(横切关注点甚至公共父类)使用的对象打包到单独的模块中,并将它们作为另一个依赖项添加到每个模块中。

于 2013-04-02T09:51:29.597 回答
1

忽略框架。拆分您的模块,直到您可以对每个模块的以下 2 个问题回答“否”:

“我是否将视图/控制器逻辑与业务逻辑混合在一起?”

“我在混合功能吗?”

请记住在父 pom.xml 中声明框架,以便模块可以共享完全相同的依赖项。

于 2013-04-03T12:45:55.137 回答