国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

這篇具有很好參考價值的文章主要介紹了SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

系列文章:
SpringBoot + Vue前后端分離項目實戰(zhàn) || 一:Vue前端設(shè)計
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接
SpringBoot + Vue前后端分離項目實戰(zhàn) || 三:Spring Boot后端與Vue前端連接
SpringBoot + Vue前后端分離項目實戰(zhàn) || 四:用戶管理功能實現(xiàn)
SpringBoot + Vue前后端分離項目實戰(zhàn) || 五:用戶管理功能后續(xù)

B站視頻講解:2023全網(wǎng)最簡單但實用的SpringBoot+Vue前后端分離項目實戰(zhàn)

不想看視頻可瀏覽此文章筆記,比較詳細

新建Spring后臺項目

IDEA file->new->project
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

選擇 Spring Initializr
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

此處不加依賴,直接FINISH
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

添加依賴

首先確認本地maven已經(jīng)配置好,點擊File -> Settings 查看Maven
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

找到pom.xml文件
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

直接復(fù)制此處需要的依賴

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.8</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ums</groupId>
    <artifactId>x-admin</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>x-admin</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- mysql -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
        </dependency>
        <!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!-- freemarker -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
        </dependency>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>

        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.7</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

遇到爆紅,點擊右側(cè)Maven刷新按鈕,等待IDEA下載依賴即可,多刷新幾次,等待
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

新建數(shù)據(jù)庫

navicat鏈接本地數(shù)據(jù)庫,新建一個數(shù)據(jù)庫xdb
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

新建一個 123.txt 文檔,將以下SQL命令復(fù)制進去后,改名為123.sql

CREATE TABLE `x_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(100) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `status` int(1) DEFAULT NULL,
  `avatar` varchar(200) DEFAULT NULL,
   `deleted` INT(1) DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

insert into `x_user` (`id`, `username`, `password`, `email`, `phone`, `status`, `avatar`, `deleted`) values('1','admin','123456','super@aliyun.com','18677778888','1','https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif','0');
insert into `x_user` (`id`, `username`, `password`, `email`, `phone`, `status`, `avatar`, `deleted`) values('2','zhangsan','123456','zhangsan@gmail.com','13966667777','1','https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif','0');
insert into `x_user` (`id`, `username`, `password`, `email`, `phone`, `status`, `avatar`, `deleted`) values('3','lisi','123456','lisi@gmail.com','13966667778','1','https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif','0');
insert into `x_user` (`id`, `username`, `password`, `email`, `phone`, `status`, `avatar`, `deleted`) values('4','wangwu','123456','wangwu@gmail.com','13966667772','1','https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif','0');
insert into `x_user` (`id`, `username`, `password`, `email`, `phone`, `status`, `avatar`, `deleted`) values('5','zhaoer','123456','zhaoer@gmail.com','13966667776','1','https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif','0');
insert into `x_user` (`id`, `username`, `password`, `email`, `phone`, `status`, `avatar`, `deleted`) values('6','songliu','123456','songliu@gmail.com','13966667771','1','https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif','0');

CREATE TABLE `x_role` (
  `role_id` int(11) NOT NULL AUTO_INCREMENT,
  `role_name` varchar(50) DEFAULT NULL,
  `role_desc` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;

insert into `x_role` (`role_id`, `role_name`, `role_desc`) values('1','admin','超級管理員');
insert into `x_role` (`role_id`, `role_name`, `role_desc`) values('2','hr','人事專員');
insert into `x_role` (`role_id`, `role_name`, `role_desc`) values('3','normal','普通員工');

CREATE TABLE `x_menu` (
  `menu_id` int(11) NOT NULL AUTO_INCREMENT,
  `component` varchar(100) DEFAULT NULL,
  `path` varchar(100) DEFAULT NULL,
  `redirect` varchar(100) DEFAULT NULL,
  `name` varchar(100) DEFAULT NULL,
  `title` varchar(100) DEFAULT NULL,
  `icon` varchar(100) DEFAULT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `is_leaf` varchar(1) DEFAULT NULL,
  `hidden` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4;

insert  into `x_menu`(`menu_id`,`component`,`path`,`redirect`,`name`,`title`,`icon`,`parent_id`,`is_leaf`,`hidden`) values (1,'Layout','/user','/user/list','userManage','用戶管理','userManage',0,'N',0),(2,'user/user','list',NULL,'userList','用戶列表','userList',1,'Y',0),(3,'user/role','role',NULL,'roleList','角色列表','role',1,'Y',0),(4,'user/permission','permission',NULL,'permissionList','權(quán)限列表','permission',1,'Y',0);

CREATE TABLE `x_user_role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL,
  `role_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

insert into `x_user_role` (`id`, `user_id`, `role_id`) values('1','1','1');

CREATE TABLE `x_role_menu` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_id` int(11) DEFAULT NULL,
  `menu_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

右擊xdb選擇運行SQL文件
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

找到123.sql文件后運行
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

運行成功
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

IDEA 連接數(shù)據(jù)庫

打開src\main\resources\application.yml,如果沒有該文件,只有application.property文件,則直接改其后綴為.yml
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

寫入代碼

server:
  port: 9999            # 端口號
spring:
  datasource:
    username: root      # 數(shù)據(jù)庫名
    password: 1234      # 數(shù)據(jù)庫密碼
    url: jdbc:mysql:///xdb

  redis:
    port: 6379
    host: localhost

logging:
  level:
    com.ums: debug

IDEA 自動創(chuàng)建類實體

先新建一個package:sys,空包,生成的代碼會放在此處
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

Mybatis-plus來自動創(chuàng)建類實體的java代碼
src\test下新建一個java類:CodeGenerator
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

然后寫上如下代碼,代碼中有解釋

package com.ums;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

public class CodeGenerator {
    public static void main(String[] args) {
        String url = "jdbc:mysql:///xdb";       // 與配置文件 一致
        String username = "root";
        String password = "1234";
        String author = "anthony";
        String moduleName = "sys";              // 系統(tǒng)管理的代碼包
        String mapperLocation = "D:\\VueProj\\x-admin\\src\\main\\resources\\mapper\\" + moduleName ;
        String tables = "x_menu,x_role,x_role_menu,x_user,x_user_role";     // 與數(shù)據(jù)庫中的表名一致,逗號隔開

        FastAutoGenerator.create(url, username, password)
            .globalConfig(builder -> {
                builder.author(author) // 設(shè)置作者
//                        .enableSwagger() // 開啟 swagger 模式
//                        .fileOverride() // 覆蓋已生成文件
                        .outputDir("D:\\VueProj\\x-admin\\src\\main\\java"); // 指定輸出目錄
            })

            .packageConfig(builder -> {
                builder.parent("com.ums") // 設(shè)置父包名
                        .moduleName(moduleName) // 設(shè)置父包模塊名
                        .pathInfo(Collections.singletonMap(OutputFile.xml, mapperLocation)); // 設(shè)置mapperXml生成路徑
            })
            .strategyConfig(builder -> {
                builder.addInclude(tables) // 設(shè)置需要生成的表名
                        .addTablePrefix("x_"); // 設(shè)置過濾表前綴, x_menu 生成的類實體無 x_ 前綴
            })
            .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默認的是Velocity引擎模板
            .execute();
    }
}

點擊run
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

生成代碼
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

定義數(shù)據(jù)傳遞至前端的格式

上一節(jié)說過,需要記錄下前端登錄的響應(yīng)數(shù)據(jù)格式
現(xiàn)在,后端來構(gòu)造此格式

{"code":20000,"data":{"token":"admin-token"}}

src\main下新建一個package: common 然后新建package:vo 再新建一個java類Result
SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接

寫入代碼,有注釋解釋

package com.ums.common.vo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
    private Integer code;       // 成功失敗的代碼,此處定義2000為成功,2001為失敗
    private String message;     // 消息,里面包含數(shù)據(jù)data
    private T data;             // 未定義的數(shù)據(jù)形式

    // 此處重載了四個 success 方法,有些能夠返回數(shù)據(jù),有的只返回代碼或信息
    public static <T> Result<T> success() {
        return new Result<>(20000,"success",null);
    }

    public static <T> Result<T> success(T data) {
        return new Result<>(20000,"success",data);
    }

    public static <T> Result<T> success(T data, String message) {
        return new Result<>(20000,message,data);
    }

    public static <T> Result<T> success(String message) {
        return new Result<>(20000,message,null);
    }

    public static<T>  Result<T> fail(){
        return new Result<>(20001,"fail",null);
    }

    public static<T>  Result<T> fail(Integer code){
        return new Result<>(code,"fail",null);
    }

    public static<T>  Result<T> fail(Integer code, String message){
        return new Result<>(code,message,null);
    }

    public static<T>  Result<T> fail( String message){
        return new Result<>(20001,message,null);
    }
}

測試文章來源地址http://www.zghlxwxcb.cn/news/detail-512472.html

  1. 先在主程序src\main\java中的XAdminApplication中加入注解@MapperScan("com.ums.*.mapper")
    SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接
  2. 進入UserController寫測試代碼
    SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接
    package com.ums.sys.controller;
    
    import com.ums.common.vo.Result;
    import com.ums.sys.entity.User;
    import com.ums.sys.service.IUserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    /**
     * <p>
     *  前端控制器
     * </p>
     *
     * @author anthony
     * @since 2023-06-16
     */
    @RestController
    @RequestMapping("/user")
    public class UserController {
        @Autowired
        private IUserService userService;
    
        @GetMapping("/all")
        public Result<List<User>> getAllUser() {
            List<User> list = userService.list();
            return Result.success(list,"查詢成功");
        }
    }
    
  3. 運行主程序
    SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接
    進入瀏覽器輸入http://localhost:9999/user/all 顯示數(shù)據(jù)則成功
    SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接
    此處數(shù)據(jù)格式也與前端對接得上

到了這里,關(guān)于SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring Boot+Vue前后端分離項目如何部署到服務(wù)器

    Spring Boot+Vue前后端分離項目如何部署到服務(wù)器

    ?? 前言 歡迎來到我的技術(shù)小宇宙!?? 這里不僅是我記錄技術(shù)點滴的后花園,也是我分享學習心得和項目經(jīng)驗的樂園。?? 無論你是技術(shù)小白還是資深大牛,這里總有一些內(nèi)容能觸動你的好奇心。?? ?? 洛可可白 :個人主頁 ?? 個人專欄 :?前端技術(shù) ?后端技術(shù) ?? 個人

    2024年04月11日
    瀏覽(108)
  • Java之Spring Boot+Vue+Element UI前后端分離項目

    Java之Spring Boot+Vue+Element UI前后端分離項目

    typeId : this.typeId, }).then((res) = { this.$router.push(“/”); this.$message.success(“文章發(fā)布成功!”); }).catch(() = { this.$message.error(“文章發(fā)布失?。 ?; }); }, handleAvatarSuccess(res, file) { this.imageUrl = URL.createObjectURL(file.raw); this.thumbnail = “http://localhost:9090/img/” + res; }, selectType(typename,id) { t

    2024年04月27日
    瀏覽(43)
  • SpringBoot + Vue前后端分離項目實戰(zhàn) || 一:Vue前端設(shè)計

    SpringBoot + Vue前后端分離項目實戰(zhàn) || 一:Vue前端設(shè)計

    系列文章: SpringBoot + Vue前后端分離項目實戰(zhàn) || 一:Vue前端設(shè)計 SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接 SpringBoot + Vue前后端分離項目實戰(zhàn) || 三:Spring Boot后端與Vue前端連接 SpringBoot + Vue前后端分離項目實戰(zhàn) || 四:用戶管理功能實現(xiàn) SpringBoot + Vue前后

    2024年02月09日
    瀏覽(99)
  • 基于SpringBoot+SpringCloud+Vue前后端分離項目實戰(zhàn) --開篇

    基于SpringBoot+SpringCloud+Vue前后端分離項目實戰(zhàn) --開篇

    如何高效學習Java? 畢業(yè)設(shè)計項目應(yīng)該怎么做?入門實戰(zhàn)項目應(yīng)該怎么做? 做Java開發(fā)都應(yīng)該學習哪些框架技術(shù)?到底應(yīng)該往哪個方向努力? ?? 這是專欄的第一篇文章,我想來跟你聊聊 為什么要學習此專欄 ?我們經(jīng)常說,看一個事兒千萬不要直接陷入細節(jié)里,你應(yīng)該 先鳥瞰

    2024年02月03日
    瀏覽(30)
  • Linux/openEuler系統(tǒng)部署spring boot+vue前后端分離項目(nginx均衡代理)

    Linux/openEuler系統(tǒng)部署spring boot+vue前后端分離項目(nginx均衡代理)

    可以看我前面的文章 華為openEuler系統(tǒng)安裝openjdk并配置環(huán)境變量 openEuler系統(tǒng)安裝nginx HUAWEI-OpenEuler系統(tǒng)安裝MySQL服務(wù)器并使用詳細步驟 Ubuntu安裝MySQL服務(wù)器詳細步驟 在確定項目可以正常運行的前提下,進行package打出jar包 npm run build 打包成功后在項目文件路徑下出現(xiàn)dist文件夾

    2024年03月24日
    瀏覽(34)
  • SpringBoot + Vue前后端分離項目實戰(zhàn) || 四:用戶管理功能實現(xiàn)

    SpringBoot + Vue前后端分離項目實戰(zhàn) || 四:用戶管理功能實現(xiàn)

    系列文章: SpringBoot + Vue前后端分離項目實戰(zhàn) || 一:Vue前端設(shè)計 SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接 SpringBoot + Vue前后端分離項目實戰(zhàn) || 三:Spring Boot后端與Vue前端連接 SpringBoot + Vue前后端分離項目實戰(zhàn) || 四:用戶管理功能實現(xiàn) SpringBoot + Vue前后

    2024年02月11日
    瀏覽(38)
  • SpringBoot + Vue前后端分離項目實戰(zhàn) || 五:用戶管理功能后續(xù)

    SpringBoot + Vue前后端分離項目實戰(zhàn) || 五:用戶管理功能后續(xù)

    系列文章: SpringBoot + Vue前后端分離項目實戰(zhàn) || 一:Vue前端設(shè)計 SpringBoot + Vue前后端分離項目實戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫連接 SpringBoot + Vue前后端分離項目實戰(zhàn) || 三:Spring Boot后端與Vue前端連接 SpringBoot + Vue前后端分離項目實戰(zhàn) || 四:用戶管理功能實現(xiàn) SpringBoot + Vue前后

    2024年02月16日
    瀏覽(44)
  • SpringBoot + Vue前后端分離項目實戰(zhàn) || 六:Jwt加密整合配置

    SpringBoot + Vue前后端分離項目實戰(zhàn) || 六:Jwt加密整合配置

    在之前的系統(tǒng)中,我們利用 UUID 配合 Redis 以達到角色登錄的功能。 當前整個系統(tǒng)存在一個問題:人為 修改token值 后,用戶仍然能在前端進行數(shù)據(jù)庫操作,后臺沒有校驗當前用戶 token 就允許一些請求,導致系統(tǒng)存在 安全漏洞 。 解決方法: Jwt簽名驗證 。整合 Jwt 后,前端發(fā)

    2024年02月15日
    瀏覽(34)
  • 【SpringBoot+Vue】全網(wǎng)最簡單但實用的前后端分離項目實戰(zhàn)筆記 - 項目概述

    【SpringBoot+Vue】全網(wǎng)最簡單但實用的前后端分離項目實戰(zhàn)筆記 - 項目概述

    配套視頻地址:https://www.bilibili.com/video/BV1dG4y1T7yp/ 如果您需要原版筆記,請up喝口水,可以上我的淘寶小店 青菜開發(fā)資料 購買,或點擊下方鏈接直接購買: 源碼+PDF版本筆記 源碼+原始MD版本筆記 感謝支持! 通過學習本項目,深刻理解前后端分離的思想,具備獨立搭建前后端

    2024年02月12日
    瀏覽(29)
  • 【SpringBoot+Vue】全網(wǎng)最簡單但實用的前后端分離項目實戰(zhàn)筆記 - 前端

    【SpringBoot+Vue】全網(wǎng)最簡單但實用的前后端分離項目實戰(zhàn)筆記 - 前端

    配套視頻地址:https://www.bilibili.com/video/BV1dG4y1T7yp/ 如果您需要原版筆記,請up喝口水,可以上我的淘寶小店 青菜開發(fā)資料 購買,或點擊下方鏈接直接購買: 源碼+PDF版本筆記 源碼+原始MD版本筆記 感謝支持! 官網(wǎng):https://nodejs.org 注意,node可以比我稍低,但不要更高 https://p

    2024年01月17日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包