目录
一、新建一个SpringBoot项目
二、将Vue项目打包
三、打包文件放到SpringBoot中
四、配置反向代理
五、启动项目
六、集成案例
一、新建一个SpringBoot项目
(博主SpringBoot版本2.7.14)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
二、将Vue项目打包
(博主vue版本:3.2.44)
由于是要放在SpringBoot中,Java服务和Web服务用的是同一个端口,所以我们给前端一个统一的URL前缀来区分前端页面和后端接口。比如:/admin;配置方式如下:在src/router文件夹下找到路由文件,注意要用history模式,不要用哈希。
至于打包,就跟平时打包到nginx一样的去打包就行了。(不要添加base参数,画蛇添足!)
三、打包文件放到SpringBoot中
在SpringBoot的resources中新建static文件夹,然后将打包后的文件复制进来
四、配置反向代理
在nginx时候我们是配置了反向代理:(try_files $uri $uri/ /index.html);从而将所有的url都代理到了index.html路径下。在SpringBoot中我们怎么办呢?
新建配置文件:MindWebMvcConfigurer。内容如下
package com.example.example;
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 MindWebMvcConfigurer implements WebMvcConfigurer {
/**
* 所有/admin/路径都代理到index.html下
* @param registry
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/admin/**").setViewName("forward:/index.html");
}
}
五、启动项目
http://localhost:8080http://localhost:8080/admin/index
- 访问http://localhost:8080,会自动去找static下的index.html。
- 访问http://localhost:8080/admin/**,也会被代理到index.html。
六、集成案例
以小诺开源项目为例:Snowy: 最新:💖国内首个国密前后分离快速开发平台💖,采用Vue3+AntDesignVue3 + Vite+SpringBoot+Mp+HuTool+SaToken。集成国密加解密插件,在前后分离框架中,实现前后分离“密”不可分;同时实现国产化机型、中间件、数据库适配,是您的不二之选;最后官网提供工作流、多租户、多数据源、Vue3表单设计器等丰富插件灵活使用。
- 使用IDEA拉取项目
- 配置redis、mysql
- 安装vue项目依赖npm install
- 启动SpringBoot项目(确保后端项目无问题)
- 启动Vue项目 npm run dev(确认前端项目无问题)
- 打包Vue项目 npm run build
- 将打包文件放到static文件夹中
- 配置反向代理
@Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/admin/**").setViewName("forward:/index.html"); }
- 配置静态资源免拦截
"/assets/**", "/img/**", "/tinymce/**", "/admin/**",
- 重启SpringBoot项目
- 访问SpringBoot接口和Web服务。
访问接口服务:启动类中有一个欢迎接口http://localhost:82/
访问Web服务:
http://localhost:82/admin
太困了!!!应一个粉丝恳求花了一晚上时间摸索出来的,网络上的大多都行不通、或过时了。如果对读者有用的话,评论几句,收藏点赞走起。微信:sunziwen3366