16

对于我正在开发的 webapps,我通常使用以下文件组织,因为我认为它尊重约定:

src
|-- main
    |-- resources
    |   |-- *.properties
    |   |-- *.xml
    |   |-- spring
    |       |-- applicationContext.xml (main application context config file)
    |-- webapp
        |-- WEB-INF
            |-- spring
            |   |-- spring-mvc.xml (web application context config file, delegated to manage only the web part)
            |   |-- spring-security-http.xml (web security config)
            |-- static
            |   |-- *.css
            |   |-- *.js
            |-- views
            |   |-- *.jsp
            |-- web.xml (deployment configuration)

我想尝试的是根据以下结构组织我的文件:

src
|-- main
    |-- resources
    |   |-- *.properties
    |   |-- *.xml
    |   |-- web.xml
    |   |-- spring
    |       |-- applicationContext.xml
    |       |-- spring-mvc.xml
    |       |-- spring-security-http.xml
    |-- webapp
        |-- WEB-INF
            |-- static
            |   |-- *.css
            |   |-- *.js
            |-- views
                |-- *.jsp

当然,在打包 webapp 时,文件将被重新定位到它们必须的位置(例如 WEB-INF 文件夹中的 web.xml 文件)。我想像上面那样重新组织我的 webapps 的原因是,我发现将所有 *.xml 配置文件放在同一位置更方便,而不是在这里和那里有一些。你认为打破我的初始结构是个坏主意吗?如果是,为什么?为什么将所有 Web 配置文件放在 WEB-INF 文件夹中如此重要?

PS:从技术上讲,我知道如何很好地链接 webapp 的类路径中的所有文件。问题更多是关于惯例和个人/专业经验的反馈。

4

2 回答 2

18

您可以创建 Java Web 项目是一些流行的 IDE,如 Eclipse、NetBeans、IntelliJ IDEA,以查看典型的 Java Web 应用程序结构。

而且开发结构和封装结构是有区别的。
在开发应用程序时,您几乎可以使用您喜欢的任何结构。但是您必须根据特定规则打包Java EE Web 应用程序。

有关详细信息,请参阅官方 Java EE 教程:

这里还有推荐的使用 Java 2 Platform, Enterprise Edition 开发的应用程序的推荐约定(虽然过时但可能有用):
Java Blueprints Guidelines。企业应用程序的项目约定

这里有一个来自上述 Java 蓝图的示例: Web 应用程序:推荐的目录结构


更新

这是我的一个带有 Spring 的 Java Web 应用程序项目的示例。例如,我将所有与 Spring 相关的配置文件存储在WEB-INF内特别创建的spring文件夹中。在spring文件夹中,我创建了更多文件夹以更好地组织我的应用程序。同样,这只是可能的变体之一,即个人喜好问题

Spring项目结构示例

于 2013-01-07T16:59:27.683 回答
4

web.xml 需要位于 WEB-INF 目录中。这是应用服务器唯一会寻找它的地方。除此之外,spring xml 文件可以在资源中(最终将在类路径中)。

于 2013-01-07T15:56:11.923 回答