如何使用两个URL映射

时间:2014-12-11 23:22:38

标签: java spring spring-mvc spring-boot

我想将我的应用程序迁移到Spring Boot Jar Deployment。它目前使用没有Boot的Spring 4.

我在/api/*有一个REST-API,在src/main/webapp有一个Javascript-Frontend,可以在/*访问。

现在我找不到在Boot中做同样的方法。

我设法让我的api通过更改/api/*属性来监听server.context-path,但我没有设法注册第二个servlet以在/*处为我的js-frontend提供服务。我知道jar部署不支持src/main/webapp,我也知道Spring Boot提供来自src/resources/publicsrc/resources/static的静态文件。但在我的情况下,由于/api/*更改,这些文件夹也会指向server.context-path

我尝试将另一个servlet注册为bean。这破坏了我的api-endpoint。

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

第一个选项 - 将src/main/webapp中的所有内容复制到src/resources/static。这是Spring Boot寻找静态内容的地方。

第二个选项,继续使用src/main/webapp,但配置您的构建以将静态资源复制到target/classes/static。我在之前的回答中为此提供了Maven配置:Refreshing static content with Spring MVC and Boot

请注意,如果您使用第一个选项,如果您希望修改内容并在不运行构建的情况下自动重新加载内容,则需要在IDE中运行应用程序。如果您正在执行jar,那么使用第二个选项可以为您提供通常的Tomcat重新加载静态内容,但可能会导致一些混乱。就个人而言,我大部分时间都使用第二个选项,因为我喜欢在命令行上运行应用程序并使用Chrome Dev Tools编辑我的HTML和JavaScript。