【问题标题】:Simple working Spring MVC / Maven configuration简单的 Spring MVC / Maven 配置
【发布时间】:2018-02-24 13:00:54
【问题描述】:

我一直在尝试使用 Maven 在 IntelliJ Idea 中从头开始设置 Spring MVC 应用程序。我知道可能有一些不错的 Archetypes 可以为你做到这一点,但我真的很想了解发生了什么。这是我想做的:

使用嵌入式 Tomcat(使用 Maven 插件)创建一个简单的 Web 应用程序,在 https://localhost:8080/ 下显示“Hello World”。因此,一个控制器、一个请求映射和一个模板。我已经能够启动 spring 应用程序(Spring 徽标出现在控制台中)并且 Tomcat 似乎也可以运行(站点响应)。问题是,我无法将请求映射到我的 Controller 中的 RequestMap 方法。我很确定控制器不是问题,但这是一些配置/设置问题。

事情是这样的:我已经看了好几个小时的教程、*、Spring 文档等,但我还没有找到真正解释如何配置 Spring MVC Maven 项目的资源。每个人似乎对您需要哪些 XML 文件、它们应该命名什么以及它们应该放在哪里都有不同的看法。共识似乎是您需要一个名为 WEB-INF 的文件夹中的 web.xml 文件,但即使在那里,每个人对该文件夹应该放在哪里都有不同的看法。我很欣赏有多种不同的方法可以做到这一点,并且没有“正确”的方法,但根据我的经验,肯定有很多“错误”的方法 =)。

我现在的问题不一定是如何让我当前的项目运行(我不介意重新开始),而是那里有哪些类型的配置文件(web、spring、app-config、servlet……) ,他们做什么,你需要哪些,他们需要去哪里,他们应该被命名,他们如何连接等等。有些人还使用 Maven 编译器插件,而其他人则没有,没有人说为什么:D。本质上:我如何让 Spring 知道在哪里可以找到控制器、模板等,以及如何在嵌入式 Tomcat 上运行和部署所有这些。我想找到一个以统一的方式解释 Spring MVC 的整个核心生态系统的来源。我找到了许多提供“操作方法”教程的资源,但几乎没有解释(例如“将以下 servlet.xml 文件添加到您的 WEB-INF 文件夹”)。因此,如果您的设置与本教程略有不同(例如,因为您使用 IntelliJ 而不是 Eclipse,使用 Tomcat 而不是 Jetty,嵌入式 Tomcat,文件夹结构略有不同),则没有任何效果,最重要的是,您不知道为什么。

有没有人通过比复制/粘贴或反复试验更好的方法来学习这些设置基础知识? :D

【问题讨论】:

    标签: spring maven tomcat configuration theory


    【解决方案1】:

    最简单的方法是使用 Spring Boot。转到以下链接:

    Spring initializr

    为“Selected Dependencise”选择“Web”,然后单击“Generate Project”。 maven 项目的下载应该在那之后开始。然后将该项目作为 Maven 项目导入 IntelliJ IDEA 中。这是一个很好的起点。您将获得可以运行的主类,并且嵌入的 Tomcat 将从 8080 端口开始。比你可以添加一些控制器、模板等...

    也不错guides

    【讨论】:

    • 好的,谢谢。我已经尝试过 Spring Boot,它运行良好,但说实话,很难理解后台发生了什么,因为它为你配置了一切 =)。但我会让导游再看一眼。