基于SpringBoot+Vue+ElementUI+Mybatis前后端分离管理系统超详细教程(一)

Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用程序。Vue 2 是其第二个主要版本,它提供了数据绑定、组件化、虚拟DOM等核心特性。要搭建一个 Vue 2 的工程化项目,可以遵循以下步骤:

一、前端环境搭建

(一)安装nodejs并配置环境变量

1、安装过程参考:

nodejs安装

标题2、环境配置参考:

nodejs相关环境配置
其中配置全局安装目录目的
就是新建一个自定义目录的文件夹, 存放之后将要安装的将一些Vue-Cli脚手架、以及产生的缓存等数据(如果我们不指定的话它就自动在c盘下的文件夹存放,不想c盘空间爆红的话建议自己确定一个存放目录

(二)安装Vue-Cli 脚手架

1、在cmd终端中输入以下命令进行全局安装:

npm install -g @vue/cli

2、创建Vue项目

2.1

使用cd命令进入你准备创建项目的文件夹,在该文件夹下新建我们的VUE工程项目:
例如我在D:\my_workspace\myProjects文件夹下创建名为:pro_1_management 的项目,那么进入该文件夹在终端输入命令:vue create pro_1_management,回车
在这里插入图片描述

3、这将启动一个交互式流程,让你选择配置选项,按向下键选择Manually select features

然后按空格键,回车
在这里插入图片描述

4、选择如下配置(使用空格键选中)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5、项目创建完成在这里插入图片描述

来看看创建好的项目文件夹里有什么

在这里插入图片描述

6、在VsCode中打开该创建好的项目

在这里插入图片描述
在这里插入图片描述

7、启动项目

快捷键:ctrl+tab上面的波浪键----- 打开VsCode终端
然后cd命令进入该项目:cd pro_1_management
输入启动命令:npm run serve
在这里插入图片描述

8、按住ctrl并单击上图中圈3链接,会在浏览器打开如下界面,说明脚手架环境搭建成功。

在这里插入图片描述

二、用户管理页面**

在第一章节中,我们完成了项目开发环境和运行环境的搭建。第二章节来搭建EJob管理系统中的用户管理界面

(一)页面整体布局搭建

1、先安装element-ui

####在终端按ctrl+c键,输入Y,就暂停终端运行了,然后输入以下命令,等待安装

npm i element-ui -S

2、给main.js文件添加代码

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
完整代码如下图:

在这里插入图片描述

3、修改HomeView.vue文件

用以下代码段替换下图中划掉的代码
<el-container><el-aside width="200px">Aside</el-aside><el-container><el-header>Header</el-header><el-main>Main</el-main></el-container>
</el-container>

在这里插入图片描述

代码段出处:Element网站(下面的代码出处同理)

Continer布局容器
在这里插入图片描述

2、删除App.vue文件中如下3~6行的代码

在这里插入图片描述

3、修改后保存,运行项目

终端运行命令:npm run serve
浏览器查看效果:

在这里插入图片描述

4、继续修改HomeView.vue文件

4.1修改侧边栏Aside
用下面的代码段替换掉下图中划掉的代码
<el-menudefault-active="2"class="el-menu-vertical-demo"@open="handleOpen"@close="handleClose"background-color="#545c64"text-color="#fff"active-text-color="#ffd04b"><el-submenu index="1"><template slot="title"><i class="el-icon-location"></i><span>导航一</span></template><el-menu-item-group><template slot="title">分组一</template><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item></el-menu-item-group><el-menu-item-group title="分组2"><el-menu-item index="1-3">选项3</el-menu-item></el-menu-item-group><el-submenu index="1-4"><template slot="title">选项4</template><el-menu-item index="1-4-1">选项1</el-menu-item></el-submenu></el-submenu><el-menu-item index="2"><i class="el-icon-menu"></i><span slot="title">导航二</span></el-menu-item><el-menu-item index="3" disabled><i class="el-icon-document"></i><span slot="title">导航三</span></el-menu-item><el-menu-item index="4"><i class="el-icon-setting"></i><span slot="title">导航四</span></el-menu-item></el-menu>

在这里插入图片描述

Ctrl+S保存,浏览器查看效果

在这里插入图片描述

4.2修改Header、Main部分
用下面的代码段依次替换掉下图中划掉的代码

在这里插入图片描述

替换Header
<el-dropdown>
<i class="el-icon-arrow-down el-icon--right"></i><span class="el-dropdown-link">巴旦木榛</span><el-dropdown-menu slot="dropdown"><el-dropdown-item>查看</el-dropdown-item><el-dropdown-item>新增</el-dropdown-item><el-dropdown-item>删除</el-dropdown-item></el-dropdown-menu>
</el-dropdown>
替换Main
		<el-table:data="tableData"style="width: 100%"><el-table-columnprop="date"label="日期"width="180"></el-table-column><el-table-columnprop="name"label="姓名"width="180"></el-table-column><el-table-columnprop="address"label="地址"></el-table-column></el-table>
修改<script></script>里的内容,完整代码如下
<script>
// @ is an alias to /src(@是/src的别名)
import HelloWorld from '@/components/HelloWorld.vue'export default {name: 'HomeView',/*components:{}不能与下面的data一起出现*/
data(){//这里变量名与上面的字段名有对应关系const item = { date: '2017-03-026',name: '王小明',address: '新疆伊犁哈萨克自治州艾兰木巴格街道'};// 这里用数据函数批量生成表格中数据return {tableData: Array(10).fill(item)}}}
</script>

5、ctrl+s保存,浏览器查看效果

在这里插入图片描述

(二)页面优化

上一小节我们完成了用户管理页面基础布局的搭建,本小节我们针对页面效果不理想的地方进行优化。

1、优化侧边栏使其高度占满浏览窗口

在assets文件夹下新建文件gloable.css,添加全局样式,具体代码如下
html,body,div{margin:0;padding:0;
}
html,body{height: 100%;
}
1.1、在main.js中引入gloable.css
import './assets/gloable.css' 

在这里插入图片描述

2、修改HomeView.vue

2.2、复制以下代码替换该文件之前的所有代码
代码如下
<template><div class="home"><!--侧边菜单栏设计开始--><el-container style="height: 100%; border: 1px solid #eee"><el-aside width="200px" ><!--菜单栏整体设置--><el-menu style="min-height:100%; overflow-x:hidden"  default-active="2"  class="el-menu-vertical-demo"  background-color="#67C23A"text-color="#000000"active-text-color="#D56C0C"> <!--菜单栏标题--> <div style="height:60px; line-height:60px; text-align:center"><img src="../assets/logo.png" style="width:20px;position:relative;top:5px;margin-right:5px"/><b style="color:white">EJob管理系统</b></div><!--菜单栏导航--><el-submenu index="1"><template slot="title"><i class="el-icon-location"></i><span>导航一</span></template><el-menu-item-group><template slot="title">分组一</template><el-menu-item index="1-1">选项1</el-menu-item><el-menu-item index="1-2">选项2</el-menu-item></el-menu-item-group><el-menu-item-group title="分组2"><el-menu-item index="1-3">选项3</el-menu-item></el-menu-item-group><el-submenu index="1-4"><template slot="title">选项4</template><el-menu-item index="1-4-1">选项1</el-menu-item></el-submenu></el-submenu><el-menu-item index="2"><i class="el-icon-menu"></i><span slot="title">导航二</span></el-menu-item><el-menu-item index="3" disabled><i class="el-icon-document"></i><span slot="title">导航三</span></el-menu-item><el-menu-item index="4"><i class="el-icon-setting"></i><span slot="title">导航四</span></el-menu-item></el-menu></el-aside><!--侧边菜单栏设计结束-->
<el-container><!--用户头部栏设计开始--><el-header style="text-align: right; font-size: 12px; border-bottom:1px solid red; line-height:60px"><el-dropdown><i class="el-icon-setting el-icon--right"></i><span class="el-dropdown-link">阿丽巴旦古丽榛</span><el-dropdown-menu slot="dropdown"><el-dropdown-item>个人信息</el-dropdown-item><el-dropdown-item>退出</el-dropdown-item></el-dropdown-menu></el-dropdown></el-header><!--用户头部栏设计结束--><!--页面主体设计开始--><el-main><!--搜索栏设计开始--><div style="padding:10px"><el-input style="width:250px" suffix-icon="el-icon-search" placeholder="请输入名称搜索"></el-input><el-input style="width:250px" suffix-icon="el-icon-email" placeholder="请输入邮箱搜索"></el-input><el-input style="width:250px" suffix-icon="el-icon-position" placeholder="请输入地址搜索"></el-input><el-button style="margin-left:5px" type="primary">搜索</el-button></div> <!--搜索栏设计结束--><!--批量操作按钮设计开始--><div style="margin:10px"><el-button type="primary">新增<i class="el-icon-circle-plus"></i></el-button><el-button type="danger">批量删除<i class="el-icon-remove"></i></el-button><el-button type="primary">导入<i class="el-icon-bottom"></i></el-button><el-button type="primary">导出<i class="el-icon-top"></i></el-button> </div><!--批量操作按钮设计结束--><!--表格设计开始--><el-table:data="tableData"style="width: 100%"><el-table-columnprop="date"label="日期"width="180"></el-table-column ><el-table-columnprop="name"label="姓名"width="180"></el-table-column><el-table-columnprop="address"label="地址"></el-table-column><!--表格设计结束--><!--行工具栏操作按钮设计开始--><el-table-column fixed="right" label="操作"><template slot-scope="scope"><el-button type="success" size="small" icon="el-icon-edit">编辑</el-button><el-button type="danger" size="small"  icon="el-icon-delete">删除</el-button></template></el-table-column><!--行工具栏操作按钮设计结束--></el-table><!--表格设计结束--><!--添加分页功能,text-align:left靠左--><div style="padding:10px;text-align:left"><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage4":page-sizes="[5, 10, 15, 20]":page-size="10"layout="total, sizes, prev, pager, next, jumper":total="400"></el-pagination></div><!--分页结束--></el-main></el-container></el-container></div>
</template><script>
// @ is an alias to /src(@是/src的别名)
import HelloWorld from '@/components/HelloWorld.vue'export default {name: 'HomeView',data(){//这里变量名与上面的字段名有对应关系const item = { date: '2019-03-026',name: '古丽埃克索',address: '新疆伊犁哈萨克自治州艾兰木巴格街道'};return {// 这里用数据函数批量生成表格中数据tableData: Array(10).fill(item),currentPage4: 5  // 这里设置分页框中的数字}},// 添加分页功能函数method: {handleSizeChange(val) {console.log(`每页 ${val}`);},handleCurrentChange(val) {console.log(`当前页: ${val}`);}}}
</script>
<!--scope:定义局部组件适用样式-->
<style scope>
.el-main{text-align: left;
}
</style>

3、保存后浏览器查看效果

优化后界面效果

(三)用户管理页面后端

上一小节我们完成了用户管理页面前端页面搭建与优化,本小节我们用IDEA编写用户管理模块后端,这样前后端联通后就能进行真正的数据交互。

1、新建工程

特别提醒:如果JDK不能选8,可以换源,如下图,点击设置按钮,把阿里云链接复制到框内,点击🆗,就能选8了,项目名称自定义,我的存放位置是前端项目同级文件夹下。
在这里插入图片描述

点击next,选择好SpringBoot版本,然后如图选择下面的几个插件,点击creat

在这里插入图片描述

2、修改application.properties文件名为application.yml,并添加以下代码:

server:port: 8085
spring:datasource:username: root#下面这里改成自己的数据库密码password: ******#url中database为对应的数据库名称,我这里是mysqlurl: jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCdriver-class-name: com.mysql.cj.jdbc.Driverthymeleaf:prefix: classpath:/templates/suffix: .htmlcache: false
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3、在添加thymeleaf依赖

内测后端环境时要在项目中创建html页面,所以添加thymeleaf依赖,后期用Vue+ElementUI,就不需要thymeleaf了。
3.1、在pom.xml中添加以下依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
3.2、新建controller包,包里新建类来设置控制器路由

在这里插入图片描述

3.3、resources下新建templates包,包下添加main.html文件

在这里插入图片描述

4、运行测试

4.1、报错

在这里插入图片描述

4.2、降低pom.xml中的SpringBoot、MyBatis版本以及maven中的版本(maven没有版本号就不用修改)

在这里插入图片描述
在这里插入图片描述

4.3、再次运行成功启动

在这里插入图片描述

4.4、浏览器查看效果

在这里插入图片描述

5、热部署(非必须)

5.1、在pom中添加依赖
      <!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>
5.2、修改编译配置
然后点击 :apply——>🆗

在这里插入图片描述

5.3、关闭并重启项目,热部署生效

6、前后端传值测试

6.1、测试后端向前端传值
(1)添加路由(提供了两种方式)
    @GetMapping("/")/*Map方式public String index(Map<String, Object> map){map.put("msg", "Hello, Spring Boot!");return "login.html";}*//*Model 方式*/public String index(Model model){model.addAttribute("msg", "Hello 同学");return "login.html";}
(2)新建login.html文件
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>登录</title>
</head>
<body><h1>登录</h1><span th:text="${msg}"></span>
</body>
</html>
(3)浏览器输入http://localhost:8085/,回车,查看运行效果

在这里插入图片描述

6.2、测试前端向后端传值
(1)修改前端login.html页面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>欢迎登录</title><link rel="shortcut icon" href="#">
</head>
<body>
<form action="login" method="post"><table><h2><span th:text="${msg}"></span></h2><tr><td>用户名: </td><td><input  type="text" name="username"/></td></tr><tr><td>密码: </td><td><input  type="password" name="password"/></td></tr><tr><td><input  type="submit" value="登录"/></td></tr></table>
</form>
</body>
</html>
(2)controller中添加路由
 @PostMapping("/login")public String login(String username, String password) {System.out.println("用户名是:"+username+"密码是:"+password);return "main.html";}
(3)保存运行

随便输入一个账号密码,点击登录,触发路由指向后台login的事件,数据向后台传递。
在这里插入图片描述

(4)查看后台数据

在这里插入图片描述

(5)页面跳转成功

在这里插入图片描述

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

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

相关文章

Maven入门(作用,安装配置,Idea基础maven,Maven依赖,Maven构建项目)【详解】

目录 一. Maven的作用 1.依赖管理 2.统一项目结构 3.项目构建 二.Maven安装配置 1. Maven的仓库类型 2 加载jar的顺序 3. Maven安装配置 4.安装Maven 5.配置仓库 三.idea集成maven 1.给当前project集成maven 2.给新建project集成maven 3.创建maven项目 4.pom…

二维码门楼牌管理系统应用场景:地方社区管理的新利器

文章目录 前言一、地方社区管理部门的门牌信息利用二、与社区管理部门的联动效应三、结论 前言 随着信息技术的不断发展&#xff0c;二维码门楼牌管理系统逐渐成为地方社区管理的新宠。该系统通过集成二维码技术与门楼牌信息&#xff0c;为社区管理带来了前所未有的便利与高效…

Github 2024-03-07Go开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10TypeScript项目1Harbor - 开源的云原生注册表项目 创建周期:2908 天开发语言:Go协议类型:Apache License 2.0Star数量:21549 个For…

uniapp 解决请求出现 /sockjs-node/info?t=问题

1. uniapp请求出现 /sockjs-node/info?t问题 1.1. 问题 uniapp项目老是出现 http://192.168.2.106:8080/sockjs-node/info?t1709704280949 1.1. sockjs-node介绍 sockjs-node 是一个JavaScript库&#xff0c;提供跨浏览器JavaScript的API&#xff0c;创建了一个低延迟、全…

selinux规则

selinux状态 相关命令 进程要和文件的安全上下文相匹配&#xff0c;进程才能打开文件 查找这个命令从哪个安装包来的用 yum provides 命令 进程httpd 必须与ls -Z的文件类型一致&#xff0c;要不然在强制模式下面&#xff0c;打开不了 在终端2用此命令&#xff0c;把文件类型改…

【有趣】带照明灯的自行车“铃”

这个自行车“铃”发出的不是令行人刺耳讨厌的金属铃声&#xff0c;而是礼貌友好的“请让路&#xff0c;谢谢&#xff01;”声&#xff0c;新颖而有趣&#xff1b;照明灯则为夜间骑车带来方便&#xff0c;既保安全而又实用。整个装置成本不足10元&#xff0c;制作和安装使用也都…

微信小程序用户登陆和获取用户信息功能实现

官方文档&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 接口说明&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html 我们看官方这个图&#xff0c;梳理一下用户…

本地项目推送到腾讯云轻量应用服务器教程(并实现本地推送远程自动更新)

将本地项目上传到腾讯云轻量应用服务器并实现后续的推送更新&#xff0c;具体步骤如下&#xff1a; 在本地项目目录下初始化 Git 仓库&#xff1a; cd 项目目录 git init将项目文件添加到 Git 仓库并提交&#xff1a; git add . git commit -m "Initial commit"在…

git 命令怎么回退到某个特定的 commit 并将其推送到远程仓库?

问题 不小心把提交的名称写错提交上远程仓库了&#xff0c;这里应该是 【029】的&#xff0c;这个时候我们想回到【028】这一个提交记录&#xff0c;然后再重新提交【029】到远程仓库&#xff0c;该怎么处理。 解决 1、首先我们找到【028】这条记录的提交 hash&#xff0c;右…

瑞芯微第二代8nm高性能AIOT平台 RK3576 详细介绍

RK3576处理器 RK3576瑞芯微第二代8nm高性能AIOT平台&#xff0c;它集成了独立的6TOPS&#xff08;Tera Operations Per Second&#xff0c;每秒万亿次操作&#xff09;NPU&#xff08;神经网络处理单元&#xff09;&#xff0c;用于处理人工智能相关的任务。此外&#xff0c;R…

teknoparrot命令行启动游戏

官方github cd 到teknoparrot解压目录 cd /d E:\mn\TeknoParrot2_cp1\GameProfiles启动游戏 TeknoParrotUi.exe --profile游戏配置文件游戏配置文件位置/UserProfiles,如果UserProfiles文件夹里没有那就在/GameProfiles,在配置文件里将游戏路径加入之间,或者打开模拟器设置 …

基于ACM32 MCU的两轮车充电桩方案,打造高效安全的电池管理

随着城市化进程的加快、人们生活水平的提高和节能环保理念的普及&#xff0c;越来越多的人选择了电动车作为代步工具&#xff0c;而两轮电动车的出行半径较短&#xff0c;需要频繁充电&#xff0c;因此在城市中设置两轮车充电桩就非常有必要了。城市中的充电桩不仅能解决两轮车…

python+django+vue房屋租赁系统 8gwmf

房屋租赁系统在设计与实施时&#xff0c;采取了模块性的设计理念&#xff0c;把相似的系统的功能整合到一个模组中&#xff0c;以增强内部的功能&#xff0c;减少各组件之间的联系&#xff0c;从而达到减少相互影响的目的。如房源信息、预约信息、求租信息模块等[12]。 管理员后…

springcloud:3.7测试线程池服务隔离

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用&#xff1a;http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…

[Redis]——数据一致性,先操作数据库,还是先更新缓存?

目录 一、操作缓存和数据库时有三个问题需要考虑&#xff1a; 1.删除缓存还是更新缓存&#xff1f; 2.如何保证缓存与数据库的操作同时成功或失效 3.先操作缓存还是先操作数据库&#xff08;多线程并发问题&#xff09; 二、 缓存更新的最佳策略 一、操作缓存和数据库时有…

深度学习-多层神经网络

文章目录 多层深度神经网络一.黑箱&#xff1a;深层神经网络的不可解释性二.多元神经网络&#xff1a; 层与 h ( z ) h(z) h(z)三.激活函数 多层深度神经网络 从单层到多层是神经网络发展史上的重大变化&#xff0c;层的增加彻底将神经网络的性能提升到了另一个高度&#xff0…

AI智商排名:Claude-3首次突破100

用挪威门萨&#xff08;智商测试题&#xff09;中 35 个问题对chatGPT等人工智能进行了测试&#xff1a; ChatGPT 对ChatGPT进行了两次挪威门萨测试&#xff0c;在 35 个问题中&#xff0c;它平均答对了 13 个&#xff0c;智商估计为 85。 测试方法 每个人工智能都接受了两次…

MATLAB知识点:循环语句的经典练习题

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自​第4章&#xff1a;MATLAB程序流程控制 下面我们来看…

贷齐乐错误的waf引起的SQL注入漏洞复现

君衍. 一、环境介绍1、第一道WAF2、第二道WAF 二、环境部署1、模拟源码2、连接数据库源码3、数据库创建4、测试 三、源码分析1、模拟WAF2、注入思路3、PHP下划线特性4、完成假设 四、联合查询注入1、测试回显字段2、爆出库名3、爆出表名4、爆出表下的列名4、爆出flag 一、环境介…

CleanMyMac X4.14.7永久免费Mac电脑清理和优化软件

CleanMyMac X 是一款功能强大的 Mac 清理和优化软件&#xff0c;适合以下几类人群使用&#xff1a; 需要定期清理和优化 Mac 的用户&#xff1a;随着时间的推移&#xff0c;Mac 设备上可能会积累大量的无用文件、缓存和垃圾&#xff0c;导致系统运行缓慢。CleanMyMac X 的智能扫…