Spring Boot + Vue 打包部署的完整流程

本文将介绍如何使用Spring Boot和Vue.js构建一个Web应用,并将其打包部署。我们将使用Maven作为构建工具,通过npm安装Vue.js,以及使用Vue CLI创建和管理Vue项目。

1. 准备工作

在开始之前,确保你已经安装了以下工具:

  • Java Development Kit (JDK) - 用于开发和构建Spring Boot应用
  • Maven - 用于构建和管理Java项目
  • Node.js 和 npm - 用于安装Vue.js和管理前端依赖

2. 创建Spring Boot项目

首先,我们需要创建一个Spring Boot项目。可以通过Spring Initializr来快速创建一个基本的Spring Boot项目。在浏览器中打开 [Spring Initializr]( ,然后按照以下步骤进行配置:

  • 选择"Project"为"Gradle Project"或"Maven Project",这里我们选择Maven。
  • 输入"Group"和"Artifact",这里我们使用示例项目名"com.example"和"springboot-vue-demo"。
  • 选择"Packaging"为"Jar"。
  • 选择Java版本,这里我们选择"8"。
  • 添加"Spring Web"和"Thymeleaf"的依赖。

点击"Generate"按钮下载生成的项目压缩包,并解压到你选择的项目目录中。

3. 创建Vue项目

在继续之前,请确保你已经安装了Node.js和npm。打开命令行终端并运行以下命令来验证安装:

node -v
npm -v

如果正确显示版本号,则说明安装成功。

接下来,我们将使用Vue CLI来创建和管理Vue项目。在命令行终端中运行以下命令来全局安装Vue CLI:

npm install -g @vue/cli

安装完成后,进入你的Spring Boot项目目录,然后运行以下命令创建一个Vue项目:

vue create frontend

这将会提示你选择一个预设配置,你可以选择默认的配置。

创建完成后,进入Vue项目目录:

cd frontend

现在,我们已经创建了一个基本的Vue项目。可以使用以下命令来启动开发服务器:

npm run serve

在浏览器中打开 http://localhost:8080 ,你将看到Vue的欢迎页面。

4. 编写前端代码

使用你喜欢的代码编辑器打开Vue项目目录,并编辑 src/App.vue 文件。这是Vue应用的根组件,你可以在这里编写你的前端代码。

下面是一个简单的示例,显示一个Hello World的文本:

<template>
  <div>
    Hello World!
  </div>
</template>

<script>
export default {
  name: 'App',
}
</script>

<style>
h1 {
  color: blue;
}
</style>

保存文件后,浏览器将自动刷新并显示更新后的内容。

5. 集成前后端

现在,我们将把Vue项目集成到Spring Boot应用中。在Spring Boot项目的根目录中,创建一个新的目录 src/main/resources/static ,并将Vue项目的 dist 目录下的所有文件复制到这个目录中。这样,Spring Boot应用将会将静态资源直接从这个目录提供。

接下来,我们需要在Spring Boot中配置一个简单的路由来处理Vue应用的路由。

在Spring Boot项目的 src/main/java/com/example/demo 目录下,创建一个新的类 WebConfig.java ,并添加以下代码:

package com.example.demo;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("forward:/index.html");
    }
}

这将配置一个路由,使得根路径 / 的请求可以重定向到 index.html 文件。

6. 打包和部署

现在,我们已经完成了项目的开发和集成。接下来,我们将把