原文链接:https://www.devglan.com/spring-boot/spring-boot-angular-deployment
我们将创建一个具有后端(服务器)和前端(客户端)的多模块maven项目,并研究如何使用maven-war-plugin, maven-resources-plugin, jar packaging进行部署的4种方法。
Spring Boot Angular 5项目
首先,让我简要介绍一下我们在上一个示例中构建的内容。我们使用angular CLI来生成angular 5项目,并对其进行了修改,使其具有用户列表和添加用户等功能。我们使用spring boot公开了用于crud操作的REST API,并集成了spring数据与MySql数据库进行通信。我们使用了ng serv在端口 localhost:4200来启动angular项目,然后它会调用来自localhost:8080.
的接口。下面是项目的整体架构:
部署Spring Boot Angular的不同方法
部署Spring Boot Angular的最佳实践是将用户界面代码(user interface code)与业务逻辑(business logic)分离开来。
这使得客户端代码和服务器端代码解耦合,从而使应用程序具有高度可伸缩性和可管理性。前端开发人员可以与后端开发人员并行地继续前端开发。后端代码可以自由使用和集成不同的技术栈,它可以用于多个客户端,比如相同的api可以重用来构建android应用程序,同样的api也可以与第三方客户端集成。它还可以减少应用程序的停机时间。无论何时,当您的api不可用或不可用时,您的客户端应用程序仍然处于启动状态。
但是,有时为一个小型团队和一个小型应用程序管理两个服务器会造成特别多的工作量。如果一个全栈开发人员处理所有UI和服务器相关的配置,那么将前端和后端应用程序打包到一个web应用程序中有时会更有帮助。当然,你还是可以暴露REST APIs并将接口与angular集成部署到tomcat上,其他的移动应用仍然可以复用API。
现在该说说怎么部署一个java web应用,我们又两种不同的方法。第一,在我们介绍Spring Boot之后,您可以将应用程序打包为带有嵌入式tomcat和数据库的FAT文件,并作为可执行文件运行;你也可以用多个maven插件创建一个.war文件,然后将其部署到独立tomcat。
这篇文章,我们主要介绍四种方式:
- node server + tomcat
- maven war插件
- maven resources插件
- spring boot jar 包
我用的方式是:maven war插件
需要将Angular工程中的context改变一下:
\apache-tomcat-8.5.37\webapps\ticketManagement-2-0.0.1-SNAPSHOT中的index.html:
<base href="/ticketManagement-2-0.0.1-SNAPSHOT/">
Angular的静态文件不是放在:
\MavenProject\ticketManagement-2\src\main\resources\static
而是放在:
\MavenProject\ticketManagement-2\src\main\webapp
然后将spring boot工程上传到tomcat:
Spring Boot需要修改pom.xml:
<packaging>jar</packaging> ===> <packaging>war</packaging>
mvn clean package










网友评论