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

对于我正在开发的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-INF文件夹中包含所有Web配置文件如此重要?

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

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

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

查看官方Java EE教程以获取详细信息:
Java EE 7教程:打包
Java EE 6教程:打包应用程序
Java EE 6教程:示例目录结构 (这里只是忽略与NetBeans相关的信息)

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

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


UPDATE

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

Spring项目结构示例

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