spring - 使用 docker 容器在 Java 应用程序中将前端与后端分开
问题描述
我在 Spring 框架中非常新,尤其是在 Docker 中,无论如何我想以这种方式改进我的应用程序:
目前我有一个带有 2 个容器的应用程序:数据库和应用程序(基于 tomcat)。在应用程序容器中,我们同时拥有:前端(js 文件)和后端。在构建应用程序期间,我们创建 .war 来存储前端文件,在 compose-up 命令期间,我们将这些文件作为 .war 文件复制到应用程序容器(tomcat 工作的地方)。现在我想为前端创建另一个容器以将前端与后端分开,并且将来使部署过程更容易(所以我想要 3 个容器:数据库、应用程序和应用程序前端)。这个目标可以实现吗?我想到的第一个想法是(使用 docker-compose)启动应用程序容器,然后将前端从应用程序前端复制到 tomcat。可能吗?
解决方案
是的,这绝对是可能的。
所以你想要3个容器
database, app and app-frontend
您的应用程序已经通过 REST API 公开了您的所有功能。
应用程序前端调用这些 API。
因此,换句话说,您可以将您的应用程序前端分开并在不同容器中的其他地方运行它,它会正常工作。
您需要牢记并可能面临问题的几件事
将应用程序前端与应用程序分开后,您将遇到跨域问题。由于您的 API 和应用程序前端不在同一个地址上。因此,您可能需要在您的应用程序中允许跨源调用
可能您需要更改 API 调用路径。如果您使用的是 jquery,您可能正在使用 url:“/userdetail”。这行不通。您需要将其更改为“url”:“IP:PORT/baseApp/userdetail”
app-frontend 应该能够与应用 API 对话。
编辑1:
回答您的问题
1. 如何构建这样的应用前端容器?还是我的观念错了?
由于您将使用静态文件。
只需将这些文件放在任何 Web 服务器中,如果您已经处理了 API url。
您已完成构建应用程序前端容器。
2.我需要像nginx这样的东西吗?
您可以使用任何 Web 服务器,如 Nginx、Apache ... 来部署您的应用程序前端
推荐阅读
- java - 为什么 JDA 返回 NullPointerException?
- docker - 将 docker 镜像部署到 heroku
- c++ - 布尔函数总是返回 False
- android - 从资产文件夹(Android)将图像加载到 ImageView 时出现“动画器只能在 Looper 线程上运行”错误
- c# - 如何为 NewtonSoft 类的一个实例创建多个 PropertyName
- express - 无法使用 socket io 2.2.0 加入房间
- python - Python3.9中的str格式化
- json - Excel 2010 VBA - 尝试使用 API JSON 从站点检索数据
- c++ - C++ std::streambuf::pubseekpos():检查是否支持随机访问
- c# - 为什么存储帐户未在函数应用中列出?