Webapp文件组织约定(开发结构)

sp0*_*00m 15 java spring file-organization web-applications java-ee

对于我正在开发的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)
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

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

inf*_*k01 14

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

开发结构和包装结构之间存在差异.
在开发应用程序时,您几乎可以使用您喜欢的任何结构.但您必须根据特定规则打包 Java EE Web应用程序.

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

此外,还提供了使用Java 2 Platform,Enterprise Edition开发的结构化应用程序的推荐约定(尽管已过时但可能有用):
Java蓝图指南.企业应用项目约定

这里是上面的Java BluePrints的一个例子: Web应用程序:推荐的目录结构


UPDATE

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

Spring项目结构示例