Spring Boot+Vue项目从零入手

Spring Boot+Vue项目从零入手

一、前期准备

在搭建spring boot+vue项目前,我们首先要准备好开发环境,所需相关环境和软件如下:

1、node.js

检测安装成功的方法:node -v

2、vue

检测安装成功的方法:vue -V

3、Visual Studio Code

这个软件是编写vue代码的工具,也可以使用idea,这个视情况而定。

4、jdk

检测安装成功的方法:java -version和javac -version

5、mysql

6、idea

7、navicat

二、搭建vue页面

2.1、创建vue项目

1.打开cmd窗口,进入准备建立vue项目的文件夹,通过vue create XXX建立一个vue项目,第一步

cmd 复制代码
Vue CLI v5.0.8
P1ease pick a preset:
Default ([Vue 3] babe1,eslint)
Default ( [Vue2]babel,eslint)
Manually select features

选择Manually select features回车

然后选择Babel和Router

选择2.X

输入y

选择In package.json

输入n

等待项目创建。

扩展

npm加速:

npm config set registry https://registry.npm.taobao.org

2.2、运行

cd XXX

npm run serve

测试项目是否能正常运行,可适当建立参数测试回显功能

vue项目可选择使用idea或者VSC打开,其中vsc调出终端快捷键ctrl+shift+Y

测试代码:在app.vue中

vue 复制代码
<h1>{{name}}</h1>
data(){
    return{
      name:"凡大帅哥!"
    }
     
  }

2.3、引入Element UI组件

npm i element-ui -S

element UI有文档,地址:element.eleme.io/#/zh-CN/component/container

首先使用命令安装组件,然后打开main.js

vue 复制代码
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI,{size:"small"});

加入上面这几句话引入

测试:

vue 复制代码
<el-button type="danger">这是el</el-button>

2.4、官网扒取示例代码

去官网扒取示例代码,调整为自己需要的网页效果

Container 布局容器

home.vue

vue 复制代码
<template>
  <div style="height:100%">
 <el-container style="height: 100%">
  <el-aside width="200px" style="background-color: rgb(238, 241, 246);height: 100%;overflow: hidden;">
    <el-menu :default-openeds="['1', '3']">
      <el-submenu index="1">
        <template slot="title"><i class="el-icon-message"></i>导航一</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">选项4-1</el-menu-item>
        </el-submenu>
      </el-submenu>
      <el-submenu index="2">
        <template slot="title"><i class="el-icon-menu"></i>导航二</template>
        <el-menu-item-group>
          <template slot="title">分组一</template>
          <el-menu-item index="2-1">选项1</el-menu-item>
          <el-menu-item index="2-2">选项2</el-menu-item>
        </el-menu-item-group>
        <el-menu-item-group title="分组2">
          <el-menu-item index="2-3">选项3</el-menu-item>
        </el-menu-item-group>
        <el-submenu index="2-4">
          <template slot="title">选项4</template>
          <el-menu-item index="2-4-1">选项4-1</el-menu-item>
        </el-submenu>
      </el-submenu>
      <el-submenu index="3">
        <template slot="title"><i class="el-icon-setting"></i>导航三</template>
        <el-menu-item-group>
          <template slot="title">分组一</template>
          <el-menu-item index="3-1">选项1</el-menu-item>
          <el-menu-item index="3-2">选项2</el-menu-item>
        </el-menu-item-group>
        <el-menu-item-group title="分组2">
          <el-menu-item index="3-3">选项3</el-menu-item>
        </el-menu-item-group>
        <el-submenu index="3-4">
          <template slot="title">选项4</template>
          <el-menu-item index="3-4-1">选项4-1</el-menu-item>
        </el-submenu>
      </el-submenu>
    </el-menu>
  </el-aside>
  
  <el-container>
    <el-header style="text-align: right; font-size: 12px;border-bottom: 1px solid #ccc;line-height: 60px;">
      <el-dropdown>
        <i class="el-icon-setting" style="margin-right: 15px"></i>
        <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>
      <span>王小虎</span>
    </el-header>
    
    <el-main>
      <el-table :data="tableData">
        <el-table-column prop="date" label="日期" width="140">
        </el-table-column>
        <el-table-column prop="name" label="姓名" width="120">
        </el-table-column>
        <el-table-column prop="address" label="地址">
        </el-table-column>
      </el-table>
    </el-main>
  </el-container>
</el-container>



</div>

</template>

<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'HomeView',
  components: {
    HelloWorld
  },
  data() {
      const item = {
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      };
      return {
        tableData: Array(10).fill(item)
      }
    }
}
</script>

写一个全局css------gloable.css,放在assets目录下

css 复制代码
html,body,div{
    margin: 0;
    padding: 0;
}
html,body{
    height: 100%;
}

在main.js中引入

js 复制代码
import './assets/gloable.css'

app.vue

vue 复制代码
<template>
  <div id="app">
    <router-view/>
  </div>  
</template>

<style>
#app {
  height: 100%;
}

</style>

三、搭建SpringBoot框架

1、创建Springboot项目,勾选Lombok(简化java代码的插件)、web------Spring Web(相当于SpringMVC)、sql------MyBatis Framework+MySql Driver

版本不要选太高了

pom配置阿里云仓库

xml 复制代码
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>nexus-a1 i yun</name>
<ur1>http ://maven . aliyun. com/nexus/content/ groups /pub1ic/</ur1>
<re1eases>
<enab1ed>true</enal1ed>
</releases>
<snapshots>
<enab1ed>false</enab1ed>
</snapshots>
</repository>
</repositories>
<p1uginRepositories>
<p1uginRepository>
<id>pub1ic</id>
<name>aliyun nexus</name>
<ur1>http: //maven . aliyun. com/nexus/content/ groups/pub1ic/</ur1>
<re1eases>
<enab1ed>true</enab1ed>
</releases>
<snapshots>
<enabled>false</enab1ed>
</snapshots>
</p1uginRepository>
</p1uginRepositories>

创建好项目后先启动,确认项目可以正常运行,再将vue整个拖入Springboot项目中

也可不拖入,访问时将地址写全

配置vue启动

再配置tomcat的地方点+,选择npm,下方选择vue的package.json,下方run的下一格写serve

四、接口整合

相关推荐
止语Lab1 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活1 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困1 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
Huiturn1 小时前
GPT 5.6 连续编码 10 小时,纯 Python 啃下 Word 二进制格式——doc2docx 实现拆解
后端
dkbnull1 小时前
Spring Boot请求处理组件对比详解
java·spring boot
用户298698530141 小时前
Python 实现 Excel 与 Markdown 互转的实用指南
后端·python·excel
不能只会打代码1 小时前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
用户77283104908401 小时前
krono-job:零侵入、单二进制交付的分布式任务调度平台(开源)
后端
Conan在掘金1 小时前
鸿蒙报错速查:Function lacks ending return statement,返回路径漏 return 就炸,根因 + 真解法
后端
人间凡尔赛2 小时前
AI-Native 云原生架构:2026 年从容器编排到智能体编排的范式革命
后端·云原生·架构