初学者SpringBoot+Vue打通前后端详细步骤(从零开始)

news2025/1/21 10:18:39

目录

前言介绍

一、后端SpringBoot项目创建

(一)springboot后端实现增删改查

二、前端Vue项目的创建

(一)下载必要的环境(有则跳过)

(二)创建vue项目并使用Element-ui

三、前后端连接

(一)后端配置 

(二)前端配置

(三)前端页面与后端实体属性绑定并发起请求

四、前后端打通页面


前言介绍

       前后端分离的SpringBoot项目

        后端:本文详细讲解了Java的springboot项目的创建到mysql数据库和表的创建,并使用nybatis-plus实现了后端对数据库的增删改查。文章的后端页面还有视频可以看,是比较适合小白的一个教程(实际开发使用mybatis比较多,手动写SQL语句)

        前端:然后创建前端vue页面,使前后端能连接起来。vue使用的是Element-ui的组件去完成的。通过异步请求的方式,不浪费资源。

      连接方式: 他们前后端连接起来是通过axiso去连接的。

        总有人觉得自己很厉害,看不起这看不起那的,谁不是一步一个脚印去完成积累的。所以b站关于前端的视频就不做了。 

一、后端SpringBoot项目创建

(一)springboot后端实现增删改查

1.创建MySQL数据库和springboot+mybatis-plus项目实现后端的增删改查 

 SpringBoot+Mybatis-Plus实现增删改查(配视频讲解)_云边的快乐猫的博客-CSDN博客

二、前端Vue项目的创建

(一)下载必要的环境(有则跳过)

2.下载前端工具vscode(也可以用其他的)

vscode下载和安装教程和配置中文插件(超详细)_vscode中文插件_云边的快乐猫的博客-CSDN博客

3.下载node.js环境

node.js的下载安装详细步骤(还有安装配套的express、淘宝镜像、webpack、Vue)_nodejs 下载_云边的快乐猫的博客-CSDN博客

(二)创建vue项目并使用Element-ui

4.使用前端代码编写工具vscode创建vue项目

vue3和vue2的介绍和两种创建方式(cli和vite)_云边的快乐猫的博客-CSDN博客

5.项目引入Element-ui并创建新页面

 vue2引入Element UI的详细步骤_vue2引入elementui_云边的快乐猫的博客-CSDN博客

三、前后端连接

(一)后端配置 

说明:前端和后端的端口不一样,所以浏览器不能直接请求连接,要通过axiso去配置他们连接的路径这些,才能实现通信。

6.在后端spring boot项目新建一个包config,里面建一个和前端请求通信的配置类CorsConfig

把这个复制到类里面就好了 

解读:允许来自前端8080端口的访问

package com.example.mybatis.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@CrossOrigin
@Configuration
public class CorsConfig {

    //当前跨域请求最大有效时长。这里默认1天
    private static final long MAX_AGE = 24 * 60 * 60;

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("http://localhost:8080"); // 1 设置前端的访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
        corsConfiguration.setMaxAge(MAX_AGE);
        source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
        return new CorsFilter(source);
    }
}

如下: 

 

(二)前端配置

7.前端首先要下载axios,在前端项目里面使用命令去进行下载就好了

npm install axios --save

8.Vue项目的src下新建一个utils的文件包,然后包里面新建一个request.js文件,里面写着向后端的80端口发起请求的配置

import axios from 'axios'

const request = axios.create({
    baseURL: 'http://localhost:80',
    timeout: 5000
})
export default request

如下:

(三)前端页面与后端实体属性绑定并发起请求

 9.把前端写死的数据换成和后端对应的数据并向后端发起请求

<template>
    <div>
        <el-table
      :data="tableData"
      style="width: 100%">
      <!--1.prop后面的都换成和后端实体属性对应的值  label后面是自定义的字 -->
      <el-table-column
        prop="id"                 
        label="ID"
        width="180">
      </el-table-column>
      <el-table-column
        prop="username"
        label="账户"
        width="180">
      </el-table-column>
      <el-table-column
        prop="password"
        label="密码">
      </el-table-column>
    </el-table>
    </div>
</template>
<!--  -->
<script>
// 2.导入axiso:因为axiso没有放入全局文件main.js里面,这个想要使用必须自己导入
import axiso from 'axiso';
export default {
  data() {
    return {
      // 3.tableData是上面模板里面的属性,要对这个属性进行插入后端的数据,所以这个数组里面写死的数据全部给删了
      tableData: []
    }
  },
  //4.定义一个钩子函数,当这个页面被加载的时候,这个钩子就向后端发起请求拿到数据
  mounted(){
    this.gouzi();   //这里为了方便,就自定义命名为钩子,实际开发中有规范的命名
  },
  //5.定义一个方法
  methods:{
    //6.谁的方法?钩子的方法
    gouzi(){
      //7.钩子要干嘛?向后端发起请求,明确说明使用get还是post,还有后端的哪里发起请求,这个可以直接去后端那边复制拿
      axiso.get('http://localhost:80/user')
      .then(Response=>{
        //8.Response拿到数据要给谁啊?当前是给模板data,  data的哪个属性?当然是本页面的tableData数组里面了
         this.tableData= Response.data
      })
    }
  }
}
</script>

四、前后端打通页面

把前后端都开启运行起来,然后前端8080端口就可以得到后端80端口mysql数据库的这个数据了

有什么问题都可以评论区留言,看见都会回复的

如果你觉得本篇文章对你有所帮助的,多多支持吧!!!

点赞收藏评论,当然也可以点击文章底部的红包或者👇订阅付费文章创作支持一下了。抱拳了!

vip文章http://t.csdn.cn/Uq5j1

bug大全订阅文章:http://t.csdn.cn/j6UyR

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/895469.html

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

相关文章

E96系列电阻阻值和代码、乘数对照表

1、为什么要用代码表示&#xff1f; 0805封装还可以简单易懂写下四位丝印&#xff0c;比如10K的1002&#xff0c;但0603的封装上面再想写下四位丝印就没空间了&#xff0c;就算写了也不容易看不清。 2、E96系列电阻阻值和代码、乘数对照表 下面是E96系列的对照表&#xff0c;…

SVG在线编辑器TOP5,这些工具你都得知道!

随着响应式网站设计的普及,SVG这种矢量图格式越来越受欢迎。SVG可以使图像在任何设备上展示效果出色。那么有哪些值得推荐的SVG在线编辑器呢?本文整理了5款热门实用的SVG在线编辑工具,它们功能强大,甚至可以替代Photoshop。这些SVG编辑器值得设计师们亲自试用,相信能给大家带来…

AR/VR眼镜转接器方案,实现同时传输视频快充方案

简介 虚拟现实头戴显示器设备&#xff0c;简称VR头显VR眼镜&#xff0c;是利用仿真技术与计算机图形学人机接口技术多媒体技术传感技术网络技术等多种技术集合的产品&#xff0c;是借助计算机及最新传感器技术创造的一种崭新的人机交互手段。VR头显VR眼镜是一个跨时代的产品。…

Linux——KVM虚拟化

目录标题 虚拟化技术虚拟化技术发展案例KVM简介KVM架构及原理KVM原理KVM虚拟化架构/三种模式虚拟化前、虚拟化后对比KVM盖中盖套娃实验 虚拟化技术 通过虚拟化技术将一台计算机虚拟为多台逻辑计算机&#xff0c;在一台计算机上同时运行多个逻辑计算机&#xff0c;同时每个逻辑…

寻找宝藏【SGOI-14】

题目描述 【背景】 据说在意大利的米兰市的地下&#xff0c;埋藏着一堆的宝藏。一天&#xff0c;一个名叫 Shevchenko 的人来到这地下宝库&#xff0c;准备把所有的宝藏都搬回家。当他来到这里时&#xff0c;发现这里是一个迷宫&#xff0c;宝藏埋藏在各个角落&#xff0c;在另…

【马蹄集】第二十三周——进位制专题

进位制专题 目录 MT2186 二进制&#xff1f;不同&#xff01;MT2187 excel的烦恼MT2188 单条件和MT2189 三进制计算机1MT2190 三进制计算机2 MT2186 二进制&#xff1f;不同&#xff01; 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目…

vue3-模板中的变化

v-model vue2比较让人诟病的一点就是提供了两种双向绑定&#xff1a;v-model和.sync&#xff0c;在vue3中&#xff0c;去掉了.sync修饰符&#xff0c;只需要使用v-model进行双向绑定即可。 为了让v-model更好的针对多个属性进行双向绑定&#xff0c;vue3作出了以下修改 当对自…

SpreadJS 16.2 and SpreadJS 16.1.5 Crack

SpreadJS 16.2 SpreadJS SpreadJS 是一个完整的企业 JavaScript 电子表格解决方案&#xff0c;用于创建财务报告和仪表板、预算和预测模型、科学、工程、医疗保健、教育、科学实验室笔记本和其他类似的 JavaScript 业务应用程序。利用高速计算引擎和 19 种语言的 500 多个 Exce…

源码低代码开发工具:JVS轻应用的基础介绍(OA系统、逻辑编排)

JVS低代码开发平台提供了大量的可配置组件和预先集成的功能&#xff0c;开发人员可以通过拖拽和设置属性的方式&#xff0c;快速搭建应用程序的前端界面和交互逻辑。同时&#xff0c;低代码平台也提供了丰富的后端服务和集成能力&#xff0c;可以轻松地与现有的系统和第三方服务…

Vue 2 动态组件和异步组件

先阅读 【Vue 2 组件基础】中的初步了解动态组件。 动态组件与keep-alive 我们知道动态组件使用is属性和component标签结合来切换不同组件。 下面给出一个示例&#xff1a; <!DOCTYPE html> <html><head><title>Vue 动态组件</title><scri…

夹具、治具、模具零件加工、云MES系统解决方案

夹具、治具、模具零件、自动化零件属于典型的多品种、小批量生产模式&#xff0c;模具零件和自动化零件一般属于单件生产或者散件生产&#xff0c;大部分机械加工企业都有这样的管理困惑&#xff0c;市面上通用的ERP系统和MES系统都无法满足这种多品种小批量、单件加工或散件加…

mysql从传统模式切到GTID模式后启动主从,主从异常报错1236

一 前言 MySQL 的主从复制作为一项高可用特性&#xff0c;用于将主库的数据同步到从库&#xff0c;在维护主从复制数据库集群的时候&#xff0c;作为专职的MySQL DBA&#xff0c;笔者相信大多数人都会遇到“Got fatal error 1236 from master when reading data from binary …

校园跑腿市场行情分析

随着社会的发展和人们生活节奏的加快&#xff0c;校园跑腿市场逐渐兴起并呈现出蓬勃发展的态势。在这个快节奏的时代&#xff0c;越来越多的学生需要在繁忙的学业之外完成各种任务&#xff0c;而校园跑腿服务正是应运而生&#xff0c;为他们提供了便利和时效。本文将从需求方面…

「追风少年」——迈克尔·詹姆斯·欧文要来中国啦!

亚运会前夕&#xff0c;8月23日~25日&#xff0c;世界著名球星迈克尔詹姆斯欧文&#xff08;Michael James Owen&#xff09;将来到杭州和球迷朋友们一起开展签售会以及举办他在中国的直播首秀&#xff0c;届时将有超头部主播加持&#xff0c;享誉世界的「追风少年」将在亚运会…

【vue】项目基础环境搭建、css样式重置与公用

nodejs环境 nodejs是当下前端工程化开发必不可少的环境, 使用 nodejs的 npm功能来管理依赖包 查看node 和 npm的版本 node -v #查看node版本npm -v #查看npm版本 git版本控制 git版本控制工具是目前最为流行的分布式版本管理工具,代码的**提交, 检出, 日志**, 都需要通过git完…

深度分析纳斯达克上市公司慧择的竞争优势和投资价值

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 一、保险行业的现状、竞争与机遇 在疫情期间&#xff0c;很多行业的经营理念与经营方式&#xff0c;甚至客户行为、客户需求都发生了变化&#xff0c;进而催生出新的机遇。保险行业亦是如此&#xff0c;受疫情影响&#xf…

opencv-python使用鼠标点击图片显示该点坐标和像素值IPM逆透视变换车道线二值化处理

OpenCV的鼠标操作 实现获取像素点的功能主要基于OpenCV的内置函数cv2.setMouseCallback()&#xff0c;即鼠标事件回调 setMouseCallback(winname, onMouse,userdata0) winname: 接收鼠标事件的窗口名称 onMouse: 处理鼠标事件的回调函数指针 userdata: 传给回调函数的用户数据…

Google API实战与操作

Google api实战与操作 一. Google API 权限配置二. 操作API2.1 引入依赖2.2 导入代码 Google官网 实现一套用java程序控制GoogleAPI实现自动生成监控日报等功能,具体能操作Gsheet及document 一. Google API 权限配置 打开上面官网,新建项目 启用API 搜索sheet及document …

解决umi.js或dva.js中effect函数发生错误dispatch失效的问题

问题背景 在项目的model文件中&#xff0c;通常在effect中进行网络请求等异步操作&#xff0c;当网络错误或者请求结果错误时&#xff0c;以及代码语法错误时&#xff0c;无论是否主动使用throw语句抛出错误&#xff0c;下一次再调用dispatch访问effect中的函数时&#xff0c;…

GRPC 学习记录

GRPC 安装 安装 grpcio、grpcio-tools、protobuf、 pip install grpcio -i https://pypi.tuna.tsinghua.edu.cn/simple pip install grpcio-tools -i https://pypi.tuna.tsinghua.edu.cn/simple pip install protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple常用类型 p…