我将创建一个非常典型且对资源要求不高的前后端项目,我的一般问题是如何以更好的方式组织它。
后端部分提供REST API,这里会用到Java和Spring Boot。关于嵌入 Tomcat 或部署 WAR 的问题仍然悬而未决。我宁愿部署 WAR,除非另一个选项对我的情况有一些优势。对于开发,我使用 Eclipse 和 Maven,最终所有这些都将在 RHEL 上运行。
前端部分是一个网络应用程序,它实现了一个访问 API 的用户界面。在这里,我将使用 React。
许多教程建议使用 frontend-maven-plugin 通过 Spring Boot 的方式提供前端内容(使用 node 和 npm 引擎盖下)。这看起来不错,紧凑。因此,我们有一个网络应用程序:
http://my.domain:8080/index.html
在以下位置访问 API:
http://my.domain:8080/api/...
但到目前为止,我发现没有一个建议在默认 http 端口 (80) 运行网络应用程序:
http://my.domain/index.html
我认为这是实际生产所必需的。
还有一些方法可以将调用从 80 端口重定向到 8080,但这看起来是不是一个棘手的补丁? Apache Tomcat 本身可以(显然)配置为在端口 80 上运行,但这对我来说也不太好。
那么,有没有一种方法可以将这样的项目组织为一个整体(最好由 Spring Boot 和 Tomcat 管理),而不是将其部分“分散”在不同的独立服务中?
最佳答案
您可以使用“webapp”文件夹和此配置:
@Configuration
public class MvcConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("/index.html");
}
}
关于java - 使用 Spring Boot 和 Tomcat 提供前端内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55848395/