Vue+SpringBoot项目开发:后台登陆功能的实现(二)

这篇具有很好参考价值的文章主要介绍了Vue+SpringBoot项目开发:后台登陆功能的实现(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在开始:一个搬砖程序员的随缘记录

一、SpringBoot项目的搭建

项目搭建传送门:从零开始,SpringBoot项目快速搭建

二、数据库配置

1、新建数据库

在本地mysql数据库新建库,库名:vue_demo,(数据库名字可自行更改,更改完记得在pom.xml中也同步更改)

2、新建用户表

CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

三、SpringBoot项目的配置

项目结构
Vue+SpringBoot项目开发:后台登陆功能的实现(二),Vue3+SpringBoot后台管理系统,vue.js,spring boot,前端
下面是具体文件的代码
pom.xml

<?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.5.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.cn</groupId>
    <artifactId>vue_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>vue_demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <skipTests>true</skipTests>
        <druid.version>1.1.10</druid.version>
        <mysql-connector.version>8.0.16</mysql-connector.version>
        <mybatis-plus.version>3.3.2</mybatis-plus.version>
    </properties>

    <dependencies>
        <!--SpringBoot通用依赖模块-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--SpringBoot校验框架-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <!--集成druid连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!--Mysql数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector.version}</version>
        </dependency>
        <!--lombok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--SpringBoot配置处理-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <!--MyBatis Plus 依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatis-plus.version}</version>
        </dependency>

    </dependencies>

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

</project>

返回实体类封装ResultBody
ResultBody.java

package com.cn.vuedemo.entity;

/**
 * 请求
 *
 * @author demo
 */
public class ResultBody<T> {
    /**
     * 响应码
     */
    private int code;
    /**
     * 消息
     */
    private String message;
    /**
     * 数据
     */
    private T data;


    public ResultBody(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public ResultBody(String message) {
        this.code = 200;
        this.message = message;
    }

    public ResultBody(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public ResultBody(T data) {
        this.code = 200;
        this.message = "请求成功";
        this.data = data;
    }

    public ResultBody(int code) {
        this.code = code;
        this.message = "请求成功";
    }

    public int getCode() {
        return code;
    }

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

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

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

用户实体类
User.java

package com.cn.vuedemo.entity;


import lombok.Data;

/**
 * @author demo
 * @date 2023/07/31 11:18
 */
@Data
public class User {
    /**
     * id
     * */
    private Integer id;
    /**
     * 账号
     * */
    private String username;
    /**
     * 密码
     * */
    private String password;
}

登录方法入参
LoginReq.java

package com.cn.vuedemo.model.request;

import lombok.Data;

/**
 * @author demo
 * @since 2023/07/31 11:18
 */
@Data
public class LoginReq {
    /**
     * 账号
     * */
    private String username;

    /**
     * 密码
     * */
    private String password;
}

service
UserService.java

package com.cn.vuedemo.service;

import com.cn.vuedemo.entity.User;
import com.cn.vuedemo.model.request.LoginReq;

import java.util.List;

/**
 * @author demo
 * @since 2023/07/31 11:18
 */
public interface UserService {

    /**
     * 登录
     *
     * @param loginReq loginReq
     * @return com.cn.vuedemo.entity.User
     * @author demo
     * @since 2023/07/31 11:18
     */
    User login(LoginReq loginReq);
}

service实现
UserServiceImpl.java

package com.cn.vuedemo.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cn.vuedemo.entity.User;
import com.cn.vuedemo.mapper.UserMapper;
import com.cn.vuedemo.model.request.LoginReq;
import com.cn.vuedemo.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

/**
 * @author demo
 * @since 2023/07/31 11:18
 */
@Service
@RequiredArgsConstructor
public class UserServiceImpl implements UserService {

    private final UserMapper userMapper;

    @Override
    public User login(LoginReq loginReq) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(User::getUsername, loginReq.getUsername())
                .eq(User::getPassword, loginReq.getPassword());
        User user = userMapper.selectOne(queryWrapper);
        return user;
    }
}

mapper
UserMapper.java

package com.cn.vuedemo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cn.vuedemo.entity.User;
import org.apache.ibatis.annotations.Mapper;

/**
 * @author demo
 * @since 2023/07/31 11:18
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

控制层controller
LoginController.java

package com.cn.vuedemo.controller;

import com.cn.vuedemo.entity.ResultBody;
import com.cn.vuedemo.entity.User;
import com.cn.vuedemo.model.request.LoginReq;
import com.cn.vuedemo.service.UserService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Objects;

/**
 * @author demo
 * @date 2023/07/31 11:18
 */
@RestController
@Slf4j
@RequestMapping("/user")
@RequiredArgsConstructor
public class LoginController {

    private final UserService userService;

    /**
     * 登陆
     *
     * @param loginReq loginReq
     * @return com.cn.vuedemo.entity.ResultBody
     * @author demo
     * @since 2023/7/31
     */
    @PostMapping(value = "/login")
    public ResultBody login(@RequestBody LoginReq loginReq) {
        log.info("loginReq:" + loginReq);
        User user = userService.login(loginReq);
        if (Objects.isNull(user)) {
            return new ResultBody(500, "密码不正确");
        }

        return new ResultBody(user);
    }
}

Over文章来源地址https://www.toymoban.com/news/detail-647191.html

到了这里,关于Vue+SpringBoot项目开发:后台登陆功能的实现(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用SpringBoot一小时快速搭建一个简单后台管理(增删改查)(超详细教程) 各大技术基础教学、实战项目开发教学

     最近也是临近期末了,各种的期末大作业,后台管理也是很多地方需要用到的,为了方便大家能快速上手,快速搭建一个简单的后台管理,我花了两天时间整理了一下 我会从0开始介绍,从数据库的设计到前端页面的引入最后到后端代码的编写,你只需要会一点前端的基础和

    2023年04月13日
    浏览(90)
  • SpringBoot+Vue项目实例开发及部署

    目录 一、SpringBoot快速上手 1、SpringBoot介绍 2、SpringBoot特点 3、快速创建SpringBoot应用 4、SpringBoot开发热部署 二、Web开发基础 1、Web入门 2、控制器 3、路由映射 4、参数传递 三、Web开发进阶 1、静态资源访问 2、文件上传原理 3、拦截器 四、构建RESTful服务 1、RESTful介绍 2、RESTf

    2024年02月06日
    浏览(44)
  • Vue3 - hooks 功能模块抽离示例(项目开发常用)

    在 vue3 项目开发中,功能模块或页面 / 组件逻辑都避免不了 hooks,充分利用它会使项目代码耦合较低、复用性更强、易维护等。 本文 提供 vue3 真实项目开发中,最常见的 hooks 功能抽离示例, 按照此示例,可进行更多场景的举一反三。 新手小白一看就懂,秒知 hooks 的概念和

    2024年02月13日
    浏览(36)
  • 牛掰,Alibaba内部《SpringBoot+vue全栈开发实战项目》重磅开源

    近年来,随着互联网技术的快速发展,全栈开发成为了一个备受瞩目的技能。全栈开发不仅可以提高开发效率,还能够更好地满足用户需求。在这个背景下,Alibaba内部最新推出的《SpringBoot+vue全栈开发实战项目》的重磅开源无疑是一个令人振奋的消息。 《SpringBoot+vue全栈开发

    2024年01月19日
    浏览(46)
  • Vue项目实战——【基于 Vue3.x + Vant UI】实现一个多功能记账本(开发导航栏及公共部分)

    系列内容 参考链接 基于 Vue3.x + Vant UI 的多功能记账本(一) 项目演示,涉及知识点 基于 Vue3.x + Vant UI 的多功能记账本(二) 搭建开发环境 Vue3 + Vant UI_多功能记账本 1、底部导航栏 components 文件夹下,创建 NavBar.vue 组件 NavBar.vue 详细内容请看代码和注释 van-tabbar-item 为标签栏

    2024年02月02日
    浏览(53)
  • Vue3+element-plus 后台管理系统(含登陆注册功能页面)

    最近在学习Vue3,记录一下自己从0开始搭建后台框架,并获取远程接口数据对页面的渲染 本次功能实现主要包括:连接后端的远程接口数据进行登录注册功能实现 : 1.本次登陆注册合并为了一个页面,页面都使用了element-plus中的组件渲染,更加美观 2.用route路由实现不同页面逻辑跳

    2023年04月26日
    浏览(54)
  • java springboot VUE粮食经销系统开发mysql数据库web结构java编程计算机网页源码maven项目

    一、源码特点   springboot VUE 粮食经销系统是一套完善的完整信息管理类型系统,结合springboot框架和VUE完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发) ,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 springboot vue 粮食经销系统

    2024年02月05日
    浏览(45)
  • 搭建SpringBoot项目——开发环境搭建开发环境搭建

    简介         SpringBoot 是 Java 社区最有影响力之一的开源的Spring后端开发框架,也是企业级应用开发的首选技术,Spring Boot 拥有良好的技术基因,它是伴随着Spring 4 而产生的技术框架,在继承了 Spirng 框架所有优点的同时也为开发者带来了巨大的便利,与普通的 Spring 项目相比

    2024年02月03日
    浏览(52)
  • SpringBoot多模块项目开发(Maven多模块项目)

    不论是maven还是Gradle,参考优秀的开源项目和boot官网的最佳实践使用构建工具组织代码来构建自己的项目,比如nacos、springboot,ruoyi等等; 要找到 Spring Boot 官网上关于 Maven 多模块项目的最佳实践,可以按照以下步骤进行: 打开 Spring Boot 官网(spring.io/projects/sp… 在导航菜单

    2024年02月04日
    浏览(40)
  • SpringBoot项目多环境开发

    说明:旧的写法。 说明:以下是最新配置。 说明:可以创建不同的文件进行区分开发环境、测试环境、生产环境。在application.yml主文件配置。  

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包