如何使用Java/Spring后端启用Angular Universal



我有一个应用程序,其中后端使用Spring Boot在Spring上实现,前端使用Angular2。有人能帮我解释一下如何使用Java becken集成Universal吗。或者给我举一个好例子,告诉我如何做到这一点。

如何使用Java beckend集成Universal?

如果你在追求Universal的SSR(服务器端渲染),你不能使用Java来实现,因为Universal SSR需要不同的服务器端技术,即nodejs

但你有另一个(更好的)解决方案

剥离一个单独的前端应用程序,用于angular然后

  1. 通过前端应用程序路由所有API调用(CORS代理方法)
  2. 或者直接从客户端浏览器上加载的angular调用Spring引导Web服务

现在您的spring-boot应用程序将只是一个(微型)服务,它只处理数据,而不处理表示(标记/样式等)

如果您正在进行universal的预渲染(预生成静态HTML/css/javascript作为构建的一部分),则spring-boot可以为这些文件提供服务(任何静态文件服务技术,nginx-apache-httpd、AWS S3、GCP-GCS等等)。

你只需要

  1. 您的CI(github-action、circleCI、TravisCI、Jenkins等)可以使用nodeJs CI容器,运行angular universal预渲染,并将生成的文件复制到spring boot将提供的静态位置。随后的java构建将这些文件打包到您的jar文件中

  2. 或者,如果您的最终工件是一个docker映像,您可以使用多级docker构建。从nodeJs的基本映像开始生成静态文件,然后在随后的步骤中使用JDK的基本映像并复制以前生成的静态文件

就我个人而言,我更喜欢将前端作为一个单独的应用程序,即使我在进行预渲染

最新更新