1、创建Vue项目(需要提前搭建好环境)
启动cmd,进入到文件夹路径,输入以下命令,回车
vue init webpack myvue 复制代码
其中 myvue 是项目的名
2、创建完成后,使用IDEA导入此vue项目
在控制台中输入 npm install
安装依赖环境
npm install --save axios vue-axios
安装axios 3、在components新建一个User.vue,前端先模拟数据进行测试
<template> <div> <table> <tr> <th>编号</th> <th>名字</th> <th>年龄</th> </tr> <tr v-for="item in users"> <td>{{item.id}}</td> <td>{{item.name}}</td> <td>{{item.age}}</td> </tr> </table> </div> </template> <script> export default { name: "user", data(){ return { users:[ { id: 1, name: '哈哈', age: 10 }, { id: 2, name: '嘎嘎', age: 14 }, { id: 3, name: '嘿嘿', age: 18 } ] } } } </script <style scoped </style> 复制代码
4、配置Vue
在main.js添加以下代码:
import axios from 'axios' import VueAxios from 'vue-axios' Vue.use(VueAxios, axios) Vue.use(router) 复制代码
配置路由:
import Vue from 'vue' import Router from 'vue-router' //导入user组件 import User from '../components/User' //显式调用User Vue.use(User) Vue.use(Router) export default new Router({ routes: [ { path: '/user', component: User } ] }) 复制代码
配置App.vue
<template> <div id="app"> <router-link to="/user">用户</router-link> <router-view></router-view> </div> </template> 复制代码
5、在控制台输入 npm run dev
启动项目,浏览器地址栏输入http://localhost:8080,测试页面如下:
1、创建SpringBoot项目
2、新建实体类
package top.dpcoder.domain; import java.io.Serializable; public class User implements Serializable{ private Integer id; private String name; private Integer age; //get、set、toString方法 } 复制代码
3、新建持久层接口(这里只写一个查找全部的,后续代码自行添加)
@Mapper @Repository("userDao") public interface IUserDao { public List<User> findAll(); } 复制代码
4、编写持久层映射文件
映射文件的位置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="top.dpcoder.dao.IUserDao"> <select id="findAll" resultType="user"> select * from user </select> </mapper> 复制代码
5、yml配置数据库的连接信息
server: port: 8081 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC username: root password: 123456 mybatis: type-aliases-package: top.dpcoder.domain mapper-locations: classpath:mybatis/dao/*.xml 复制代码
6、编写controller类代码(此处省去业务层)
@RestController @RequestMapping("/user") public class UserController { @Autowired private IUserDao dao; @GetMapping("/findAll") public List<User> findAll(){ return dao.findAll(); } } 复制代码
7、启动项目,测试
测试成功!
8、在后端配置解决跨域问题
新建config包,创建CrosConfig类
@Configuration public class CrosConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("GET","POST","HEAD","PUT","DELETE","OPTIONS") .allowCredentials(true) .maxAge(3600) .allowedHeaders("*"); } } 复制代码
重启SpringBoot项目
最后在User.vue中通过axios从后端获取数据
<script> export default { name: "user", data(){ return { users:[ ] } }, //页面初始化完成后要加载的东西 created() { //this指的是当前的vue对象,把vue对象赋给_this const _this=this this.axios.get('http://localhost:8081/user/findAll').then(function (resp) { //回调函数中的this指的是回调 //把data数据赋给_this,即vue对象 _this.users=resp.data }) } } </script> 复制代码
启动vue项目,进行测试