如何部署springboot+vue前后端分离项目
一. 部署后端(Spring Boot)
1 构建后端项目
1.1.设置跨域
前端项目后续会部署到nginx,设置的是http://localhost路径,所以后端项目在打包前,重新设置一下跨域访问路径(跨域访问的路径根据自己设置的前端路径来定)
也可以通过添加配置类,设置多个跨域路径
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:5173", "http://localhost") // 允许的来源
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许的方法
.allowedHeaders("*"); // 允许的请求头
}
}
1.2 打包Spring Boot应用
这里我们打包LoanSystem项目,idea中打开LoanSystem项目,打开底部的终端窗口,输入命令
mvn clean package
这会在target目录下生成一个.jar文件, loansystem-0.0.1-SNAPSHOT.jar。
2. 设置JVM参数和编写启动脚本
在Spring Boot项目中创建JVM参数文件(如jvm.options)的具体位置可以根据你的项目结构和部署方式来确定。以下是几种常见的创建和使用jvm.options文件的方法:
- 在项目根目录下创建:适合开发和测试环境,方便版本控制。
- 在服务器上创建:适合生产环境,便于不同服务器上的个性化配置。
- 作为系统环境变量:适合统一管理多个Java应用的JVM参数。
2.1 方法1:在项目根目录下创建
1 在项目根目录创建jvm.options
文件
- 在你的Spring Boot项目根目录下创建一个名为
jvm.options
的文件。文件内容如下:-Xms512m -Xmx2g -XX:+UseG1GC -XX:+PrintGCDetails -Xlog:gc*:file=gc.log:time
解释:
-
-Xms512m
含义: 设置 JVM 的初始堆内存大小为 512MB。
解释: -Xms 参数用于指定 JVM 启动时分配的初始堆内存大小。当你启动一个 Java 应用程序时,JVM 会预先分配指定的内存量,这样可以减少启动时的内存分配开销。 -
-Xmx2g
含义: 设置 JVM 的最大堆内存大小为 2GB。
解释: -Xmx 参数用于指定 JVM 可以使用的最大堆内存大小。当应用程序运行时,如果需要更多的内存,JVM 会自动扩展堆内存,直到达到设定的最大值。这个参数可以帮助防止内存不足导致的 OutOfMemoryError。 -
-XX:+UseG1GC
含义: 启用 G1 垃圾收集器。
解释: -XX:+UseG1GC 参数用于启用 G1 (Garbage First) 垃圾收集器。G1 是一种并行、并发、增量式的垃圾收集器,适用于多核处理器和大内存环境。它旨在提供较低的停顿时间,并且能够自动调整以适应不同应用的需求。 -
-XX:+PrintGCDetails
含义: 打印详细的垃圾回收日志。
解释: -XX:+PrintGCDetails 参数用于在控制台输出详细的垃圾回收日志信息。这些信息包括每次垃圾回收的类型、耗时、回收的内存量等。通过这些日志,开发人员可以分析垃圾回收的性能,优化应用程序的内存使用。 -
-Xlog:gc:file=gc.log:time
含义: 将垃圾回收日志记录到文件 gc.log,并包含时间戳。
解释:
-Xlog:gc*:这个参数用于启用垃圾回收相关的日志记录。gc* 表示记录所有与垃圾回收相关的日志。
file=gc.log: 指定日志文件的名称和路径。这里将日志输出到名为 gc.log 的文件中。
time: 在日志中包含时间戳,用于标识每条日志记录的时间。
2.编写启动脚本
对于windows系统,在项目根目录下创建一个start.bash脚本,linux上则创建start.sh脚本
@echo