当前位置: 首页 > news >正文

Vue+spring boot前后端分离项目搭建---小白入门

首先,介绍一下软件准备工作

1.vscode

2.maven

3.vue搭建:node.js+yarn+vite

一.后端搭建

打开vscode,建立一个springboot项目,参考链接:sping boot项目搭建

建立一个项目,目录结构如下:

helloController.java

package example.example1;import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@CrossOrigin // 允许所有跨域请求(仅用于开发)
public class HelloController {@GetMapping("/hello")public String hello() {return "你好,Spring Boot! 当前时间: " + new java.util.Date();}
}

访问浏览器:http://localhost:8080/hello

运行界面如下:

二.前端搭建

打开一个文件夹,建立一个vue项目,参考链接:vue项目创建

项目目录结构如下:

public/index.html如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>极简Vue+SpringBoot</title>
</head>
<body><div id="app"></div>
</body>
</html>

Components/App.vue如下:

<template><div><h1>Vite + Spring Boot 测试</h1><button @click="fetchData">获取后端数据</button><div v-if="message">{{ message }}</div><div v-if="error" style="color: red">{{ error }}</div></div>
</template><script>
export default {data() {return {message: '',error: ''}},methods: {async fetchData() {try {const response = await fetch('/api/hello') // 注意 /api 前缀this.message = await response.text()this.error = ''} catch (err) {this.error = '请求失败: ' + err.message}}}
}
</script>

main.js如下:

import './assets/main.css'import { createApp } from 'vue'
import App from './App.vue'createApp(App).mount('#app')

vite.config.js如下

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'export default defineConfig({plugins: [vue()],server: {proxy: {'/api': {target: 'http://localhost:8080', // 你的 Spring Boot 后端地址changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, '') // 去掉 /api 前缀}}}
})

运行界面如下:

点击获取后台数据:

这样就完成了前后端分离啦。

注意:要先运行后端再运行前端。

关键步骤总结:

一.后端搭建

1.首先,搭建后端,在servlet里面设置@CrossOrigin

2.用@GetMapping()定义访问映射

编写@GetMapping("/hello")定义访问的映射

二.前端搭建:

1.用fetch方法来获取数据

fetch 是浏览器内置的一个用于发送网络请求(如 HTTP 请求)的函数。它可以用来向服务器获取数据或提交数据,常用于前后端分离项目中前端与后端的通信。

const response = await fetch('/api/hello')

这行代码的意思是:向 /api/hello 这个接口发送一个 GET 请求,等待服务器返回响应,然后把响应结果赋值给 response 变量。

2.其中,api接口是自己在vite.config.js中定义的

 proxy: {
      '/api': {
        target: 'http://localhost:8080', // 你的 Spring Boot 后端地址
        changeOrigin: true,
         rewrite: (path) => path.replace(/^\/api/, '') // 去掉 /api 前缀
      }
    }

这样访问也就是访问了http://localhost:8080/hello

当然,你也可以选择把接口直接定义为hello,这样地址就不用重写了,就可以写成,

 proxy: {
      '/hello': {
        target: 'http://localhost:8080', // 你的 Spring Boot 后端地址
        changeOrigin: true
      }
    }

不过,这样 const response = await fetch('/api/hello') 也要改成 const response = await fetch('/hello') 

http://www.lqws.cn/news/470269.html

相关文章:

  • 2025云服务器磁盘空间告急全解析:日志管理策略与智能扩容方案
  • 98. 验证二叉搜索树
  • Redis哨兵模式的学习(三)
  • React JSX语法
  • Hologres 使用 FDW
  • 「Linux文件及目录管理」输入输出重定向与管道
  • 网络编程及原理(六):三次握手、四次挥手
  • 什么是跨域问题?后端如何解决跨域问题?
  • 基于FPGA的白噪声信号发生器verilog实现,包含testbench和开发板硬件测试
  • ffmpeg(六):图片与视频互转命令
  • Python编程语言:2025年AI浪潮下的技术统治与学习红利
  • python的校园兼职系统
  • 分享两个可以一键生成sql server数据库 html格式巡检报告的脚本
  • 张之瞳全新单曲《6:30am》上线:以音乐定格青春遗憾中的诗意守望
  • Python 邻接表详细实现指南
  • 【软考高级系统架构论文】论面向服务架构设计及其应用
  • 【设计模式】6.原型模式
  • Git 使用手册:从入门到精通
  • 海光x86与Intel/AMD x86的差异解析:技术演进、架构博弈与未来之路
  • 通过 Lambda + API Gateway + 外部 API 实现。
  • 国产通用智能语音芯片品牌有哪些?
  • 树莓派无源蜂鸣器播放两首音乐实验指导书
  • python模块常用语法sys、traceback、QApplication
  • (LeetCode 面试经典 150 题) 169. 多数元素(哈希表 || 二分查找)
  • Java集合框架初识
  • 一,python语法教程.内置API
  • 【设计模式】3.装饰模式
  • 跳跳杆Pogo Stick
  • Swift 解锁数组可修改场景:LeetCode 307 高效解法全解析
  • (LeetCode 每日一题) 3085. 成为 K 特殊字符串需要删除的最少字符数 (贪心、哈希表)