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.pswp.cn/diannao/88341.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“苏超”拉动周末消费,抖音生活服务:比赛城市迎来普遍消费上涨

“苏超”爆火&#xff0c;有力拉升了紧随赛程的周末消费。抖音生活服务数据显示&#xff0c;刚刚过去的周末&#xff08;6月21日至22日&#xff09;&#xff0c;江苏商圈休闲运动团购订单消费环比增长225%&#xff0c;到店消费金额环比增长181%。虽然几个比赛城市周末天气欠佳&…

使用python开发一个exe版本的计算器项目练习

最近在练习python开发软件&#xff0c;就开发了一个 客户端版的 计算器。先给大家看一下 做出来的样子 python版本&#xff1a;3.8 以上 主要是 使用 import tkinter as tk 这个库来实现图形界面开发 代码还是比较简单的&#xff1a; # 创建主窗口 root tk.Tk() root.title…

uniapp开发小程序,导出文件打开并保存,实现过程downloadFile下载,openDocument打开

uniapp开发小程序&#xff0c;导出文件打开并保存 实现思路 1、调用请求获取到后端接口返回的下载文件的url路径 &#xff08;注意必须是https的路径&#xff0c;域名需要配置在微信小程序后台的合法域名里面&#xff09; 2、使用 uni.downloadFile 方法 &#xff08;下载文件…

vue2中前端实现图片裁剪上传到服务器

在 Vue 2 中实现图片裁剪并上传到服务器&#xff0c;你可以结合使用 Cropper.js 来进行图片裁剪&#xff0c;并通过 Axios 或者其他 HTTP 客户端库将裁剪后的图片上传至服务器。以下是一个基本的实现步骤和示例代码&#xff1a; 步骤 安装依赖&#xff1a;你需要安装 cropperj…

C# 网络编程-关于HttpWebRequest使用方式(二)

项目开发用到数据请求时候&#xff0c;会用的到HttpWebRequest的请求方式&#xff0c;主要涵盖GET、POST、PUT、DELETE等方法 一、HttpWebRequest简介 HttpWebRequest是.NET Framework中用于发送HTTP请求的核心类&#xff0c;适用于构建HTTP客户端。它支持GET、POST、PUT、DE…

git变更记录

目录 wvp-ui -new Dji 10.60.2.175:8000上的编译 个人拉分支 目前约定2025-06-25 wvp-ui -new branch new BASE_URL /new/ ci-cd : wvp-newui Config [Jenkins] 禁 用 10.30.2.8 ssh 10.30.2.8 /home/dualven/wvp-server/deployNewUi.sh Dji 主分支的构建&#xf…

前端如何禁止用户复制?

禁用右键菜单 document.addEventListener(contextmenu, function(e) {e.preventDefault(); });禁用快捷键&#xff08;CtrlC/X/A等&#xff09; document.addEventListener(keydown, function(e) {if (e.ctrlKey && [c, x, v, a].includes(e.key.toLowerCase())) {e.…

阿里云无影:开启云端办公娱乐新时代

阿里云无影云电脑&#xff1a;打破传统束缚&#xff0c;畅享云端自由 在数字化浪潮汹涌澎湃的当下&#xff0c;云计算技术持续革新&#xff0c;为我们的工作与生活带来前所未有的变革。阿里云作为云计算领域的佼佼者&#xff0c;推出的无影云电脑无疑是一颗璀璨的明星&#xf…

Windows 和 macOS 串口调试软件

在 Windows 和 macOS 上&#xff0c;你可以使用以下串口调试软件来查看开发板的打印信息。以下是常见且好用的工具推荐&#xff1a; Windows 推荐工具 PuTTY 免费、轻量级&#xff0c;支持串口&#xff08;COM&#xff09;和 SSH/Telnet下载地址&#xff1a;https://www.putty.…

Redis 的作用及详细分析

网上查询总结了一下Redis相关的信息 记录一下 &#xff0c;有问题的地方&#xff0c;望多加指正&#xff0c;我们共同学习。 什么是Redis Redis是一款内存高速缓存数据库。Redis全称为&#xff1a;Remote Dictionary Server &#xff08;远程数据服务&#xff09;&#xff0c;…

【边缘计算】引论基础

&#xff08;1&#xff09;在不远的未来&#xff0c;将有超过50%的数据需要在网络边缘侧分析、处理与储存。智能互联的网络边缘侧将会面临如下挑战&#xff1a; 联接设备的海量与异构 随着联接设备数量的剧增&#xff0c;网络运维管理、灵活扩展和可靠性保障都面临着巨大挑战。…

SpringBoot中4种登录验证码实现方案

文章目录 详解方案一&#xff1a;基于kaptcha的图形验证码实现步骤 方案二&#xff1a;基于短信验证码实现步骤 方案三&#xff1a;基于Spring Mail的邮箱验证码实现步骤 方案四&#xff1a;基于AJ-Captcha的滑动拼图验证码实现步骤 总结 详解 在Web应用中&#xff0c;验证码是…

基于版本控制+WORM的OSS数据保护:防勒索攻击与法规遵从实践

1. 数据保护的核心挑战与解决方案架构 &#xff08;1&#xff09;现代数据保护的三大矛盾 勒索软件进化 vs 传统备份脆弱性&#xff1a;攻击者已掌握备份系统删除技术&#xff08;如vssadmin delete shadows&#xff09;法规保留要求&#xff08;GDPR第17条&#xff09;vs 技…

混合架构入门:如何选组合恰当的云 + 私有节点?

如果你最近刚开始搭建业务系统&#xff0c;或者准备从传统IDC迁移到云上&#xff0c;你很可能已经被“混合云”、“多云”、“私有部署”这些概念绕得头晕。而今天这篇文章&#xff0c;不会再罗列概念或抄定义&#xff0c;而是站在一个运维工程师、架构规划者的角度&#xff0c…

CDN+OSS边缘加速实践:动态压缩+智能路由降低30%视频流量成本(含带宽峰值监控与告警配置)

1 背景与挑战分析 &#xff08;1&#xff09;流量成本结构剖析 视频业务带宽成本公式&#xff1a; C_{total} \sum_{i1}^{n} (P_{peak_i} T_i R_{region}) C_{req} N_{req}其中 P p e a k P_{peak} Ppeak​ 为区域峰值带宽&#xff08;GB/s&#xff09;&#xff0c; T …

Flink内存配置

通过本文可以解决以下3个问题。 了解flink内存和配置项相关概念。清楚UI中TM和JM各内存组件实际内存值的计算规则。根据实际情况对内存进行调整。 1. Flink进程内存 TM和JM二者均为JVM进程&#xff08;JVM通常分成堆内和堆外两部分&#xff09;。TM和JM的内存定义为进程总内…

最新发布 | “龙跃”(MindLoongGPT)大模型正式发布!龙跃而起,推动中国方案走向全球智能体前沿

在人工智能快速演进的今天&#xff0c;生成式大模型正成为推动技术变革的核心引擎。继语言、图像、视频等领域实现突破之后&#xff0c;下一阶段的技术焦点&#xff0c;正加速向“具身智能”迁移。具身智能强调智能体对物理世界的感知、理解与互动能力&#xff0c;是实现通用人…

【系统分析师】2019年真题:论文及解题思路

文章目录 试题一 论系统需求分析方法试题二 论系统自动化测试及其应用试题三 论处理流程设计方法及应用试题四 论企业智能运维技术与方法 试题一 论系统需求分析方法 系统需求分析是开发人员经过调研和分析&#xff0c;准确理解用户和项目 的功能、性能、可靠 性等要求&#x…

在PHP环境下使用SQL Server的方法

当您处在PHP环境并想使用SQL Server作为数据库服务器时&#xff0c;您需要将SQL Server连接到PHP。这涉及到一些步骤&#xff0c;我们会逐一说明并提供示例以指导你。 1.安装SQL Server驱动&#xff1a; 首先&#xff0c;您需要在PHP环境中安装对应的SQL Server驱动&#xff0…

RISC-V h拓展

https://tinylab.org/riscv-kvm-virt-mode-switch/ https://tinylab.org/riscv-kvm-virt-trap/ 特权模式 指令集中约定用虚拟化模式 V (virtualization mode) 来标记当前是否是在 Guest 系统中运行。V1 表示当前确实运行在 Guest 系统中&#xff0c;V0 则表示不运行在 Guest 中…