IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 从0搭建一个Springboot+vue前后端分离项目(宝塔面板 云服务器上线) -> 正文阅读

[JavaScript知识库]从0搭建一个Springboot+vue前后端分离项目(宝塔面板 云服务器上线)

前言:

看到大佬的博客推荐 也去看了这个up主的视频,很短,很有用
https://www.bilibili.com/video/BV14y4y1M7Nc?p=2

gitee源码:

https://gitee.com/web-paul/springboot-vue

第一部分:vue前端

目录:
在这里插入图片描述
一、assets目录:
引用了一个全局css样式,最后在main.js引入即可
在这里插入图片描述
main.js中:

import '@/assets/css/global.css'

二、components目录:
在这里插入图片描述
Aside代表侧边栏组件:
在这里插入图片描述
el-menu这个标签记住了
1处代表设置默认高亮的地方
2处router代表路由根据下面的index自动调整,index一定要填对名字

下面是头部栏组件:
在这里插入图片描述

首先整体被一个大的div盒子包围住了 使用的flex布局
第一部分200px
第二部分flex设置为1
第三部分设置100px在最右边 然后使用了el-dropdown下拉菜单

三、Layout 总体布局

将头部栏 侧边栏 内容栏拼接在了一起
在这里插入图片描述

四、路由js

开始套娃 redirect是/的重定向
在这里插入图片描述
权限问题:未登录不得进入(通过sessionstorage取值 parse转化为对象):
在这里插入图片描述

五、封装request.js +跨域用的js (用直接ctrl+v)

request.js:

import axios from 'axios'
import router from "@/router";

const request = axios.create({
    baseURL: "/api",
    timeout: 5000
})

// 请求白名单,如果请求在白名单里面,将不会被拦截校验权限
const whiteUrls = ["/user/login", '/user/register']

// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
request.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json;charset=utf-8';

    // config.headers['token'] = user.token;  // 设置请求头

    if (!whiteUrls.includes(config.url)) {  // 校验请求白名单
        // 取出sessionStorage里面缓存的用户信息
        let userJson = sessionStorage.getItem("user")
        if (!userJson) {
            router.push("/login")
        }
    }
    return config
}, error => {
    return Promise.reject(error)
});

// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
    response => {
        let res = response.data;
        // 如果是返回的文件
        if (response.config.responseType === 'blob') {
            return res
        }
        // 兼容服务端返回的字符串数据
        if (typeof res === 'string') {
            res = res ? JSON.parse(res) : res
        }
        return res;
    },
    error => {
        console.log('err' + error) // for debug
        return Promise.reject(error)
    }
)


export default request


vue-config.js:

// 跨域配置
module.exports = {
    devServer: {                //记住,别写错了devServer//设置本地默认端口  选填
        port: 9876,
        proxy: {                 //设置代理,必须填
            '/api': {              //设置拦截器  拦截器格式   斜杠+拦截器名字,名字可以自己定
                target: 'http://localhost:9090',     //代理的目标地址
                changeOrigin: true,              //是否设置同源,输入是的
                pathRewrite: {                   //路径重写
                    '/api': ''                     //选择忽略拦截器里面的单词
                }
            }
        }
    }
}

跨域:
在这里插入图片描述

六、讲解登陆注册功能:

十分容易上手的页面布局 及使用element-plus的调用接口函数
详细请见gitee源码 学习
在这里插入图片描述

七、页面的表单部分(el-table):

在这里插入图片描述
代码详细请见源码
补充 request.get方法传多参数的样子写法如下:
在这里插入图片描述

第二部分:Springboot后端

一、mapper类 不用手写sql 而是用了mybatis-plus 继承即可
在这里插入图片描述
二、实体类 用了lombok
不用写getter和setter了 但要安lombok插件 不然idea爆红
在这里插入图片描述

三、关于控制层

手写前两个注解很常用 先加上
@Resource注入mapper 按理应该有个service层
然后postmapping是发送参数的
@RequestBody注解很重要 传参是要加 和json数据交互

补充一个返回类:

result:

package com.example.demo.common;

public class Result<T> {
    private String code;
    private String msg;
    private T data;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public Result() {
    }

    public Result(T data) {
        this.data = data;
    }

    public static Result success() {
        Result result = new Result<>();
        result.setCode("0");
        result.setMsg("成功");
        return result;
    }

    public static <T> Result<T> success(T data) {
        Result<T> result = new Result<>(data);
        result.setCode("0");
        result.setMsg("成功");
        return result;
    }

    public static Result error(String code, String msg) {
        Result result = new Result();
        result.setCode(code);
        result.setMsg(msg);
        return result;
    }
}

最后

vue项目打包为dist:

npm run build

java项目打包:

mvn clean
然后complile编译一下
最后打包
要target目录里的jar包
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:27:49  更:2021-08-24 15:27:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:33:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码