对于我正在开发的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的类路径中的所有文件。问题更多的是关于会议和个人/专业经验的反馈。
答案 0 :(得分:14)
你可以创建Java Web项目是一些流行的IDE,比如Eclipse,NetBeans,IntelliJ IDEA,可以看到典型的Java Web应用程序结构。
开发结构和包装结构之间存在差异 在开发应用程序时,您几乎可以使用您喜欢的任何结构。但是必须根据特定规则打包 Java EE Web应用程序。
有关详细信息,请参阅官方Java EE教程:
此处是使用Java 2 Platform,Enterprise Edition开发的结构化应用程序的推荐约定(尽管已过时但可能有用):
Java Blueprints Guidelines.
Project Conventions for Enterprise Applications
以上是来自上述Java BluePrints的示例:
更新
以下是我的一个带有Spring的Java Web应用程序项目的示例。 例如,我将所有与Spring相关的配置文件存储在 WEB-INF 中专门创建的 spring 文件夹中。在 spring 文件夹中,我创建了更多文件夹以更好地整理我的应用。同样,它只是可能的变体之一,即个人偏好的问题。
答案 1 :(得分:4)
web.xml需要位于WEB-INF目录中。这是应用服务器寻找它的唯一地方。除此之外,spring xml文件可以在资源中(最终将在类路径中)。