Spring和MVC正确的项目结构
Posted
技术标签:
【中文标题】Spring和MVC正确的项目结构【英文标题】:Spring and MVC proper project structure 【发布时间】:2012-09-06 01:11:42 【问题描述】:我正在使用 Maven 开发 Swing 独立应用程序。我尝试遵循 MVC 模式。我对我的项目结构感到困惑。我有这样的事情:
/src/main/java/myName/appName
/src/main/java/myName/appName/model
/src/main/java/myName/appName/view
/src/main/java/myName/appName/controller
现在我想合并 Spring 框架,是什么让我将 DAO 和 BO 接口和实现放在某个地方。我已经阅读了这篇文章link,建议的项目结构不适合我。我想到的是添加以下内容:
/src/main/java/myName/appName/dao
/src/main/java/myName/appName/bo
dao 目录的内容如下所示(模型目录中有 Client 和 Customer 类):
/src/main/java/myName/appName/dao/ClientDAO.java
/src/main/java/myName/appName/dao/ClientDAOImpl.java
/src/main/java/myName/appName/dao/CustomerDAO.java
/src/main/java/myName/appName/dao/CustomerDAOImpl.java
这很糟糕吗?我想学习好的做法。
【问题讨论】:
您引用的文章中目录结构的哪一部分不适合您? @Adrian Shum 那么你会将 DAO 和 BO 类放在哪里? @Costi Ciudatu 为什么这是不好的做法?改用什么? 而不是 DaoImpl ? mysqlDao、JpaDao 或(最坏的情况)DefaultDao 或 StandardDao。 *Impl 表示只能有一个实现,否则第二个将被命名为 *Impl2。如果只能有一个实现,则不需要接口...... Sprign 不需要每个 DAO 的接口?在我读过的每个 Spring 教程中,所有 DAO 都有自己的接口 【参考方案1】:分类
/src/main/java/myName/appName/model
/src/main/java/myName/appName/view
/src/main/java/myName/appName/controller
以后会给你带来麻烦。 您提供的链接中提到的包结构应该适合您。每个模块/实体都应该有一个包。例如/src/main/java/myName/appName/customer
,你应该把所有与customer
相关的model
、view
、controller
和dao
类放在这个包中.
【讨论】:
我认为将视图与模型分开会很好。如果我的视图类与任何实体都不相关怎么办?我应该把它放在哪里?还有,是否需要为model、dao和bo创建单独的文件夹,然后在dao和bo中单独的文件夹来实现?我想要这样的东西:/src/main/java/myName/appName/customer/Customer.java
、/src/main/java/myName/appName/customer/CustomerDAO.java
、/src/main/java/myName/appName/customer/CustomerDAOImpl.java
、/src/main/java/myName/appName/customer/CustomerBO.java
和 BO 实现。
通用类(如果有的话)可以放在像../appName/common/
这样的文件夹中。对于实体../customer/bo
和../customer/dao` 可以添加到其他类,它可以直接在../customer
中。将您的 dao 实现命名为 MySqlDao
或 <SpecificDB>Dao
。
能否详细说明为什么会出现问题?【参考方案2】:
您可以遵循您在问题中定义的两个项目结构中的任何一个,但这应该取决于您的应用程序大小。
如果您的应用程序中有大量模块,则可以遵循@basijames 描述的项目结构。因为这将有助于管理代码和在团队中分配工作。
如果你没有很多模块,那么我更喜欢你应该使用类似下面的项目结构。
/src/main/java/myName/appName/controller
/src/main/java/myName/appName/model
/src/main/java/myName/appName/service
/src/main/java/myName/appName/dao
/src/main/java/myName/appName/bo
但根据我的说法,在创建 maven 项目时,您应该跳过选择架构类型。
希望这对您有所帮助。干杯。
【讨论】:
以上是关于Spring和MVC正确的项目结构的主要内容,如果未能解决你的问题,请参考以下文章