项目全流程 (1/3)

目录

前言

一、环境搭建-spring

1.1 IDEA环境搭建

 1.1.1 创建项目配置

 1.1.2 选择Springboot版本

 1.1.3 项目设置

1.1.4 导入pom.xml文件

1.1.4 导入src文件

1.1.5项目启动测试

二. 用户登录实现

2.1.1 user表说明

2.1.2 编辑User POJO

 2.2.1 前后端项目说明

2.2.2 前后端调用说明

 2.3.1封装SysResult对象

2.3.2 业务接口文档

2.3.3 MD5加密算法

2.3.4 编辑UserController

2.3.5 编辑UserService

2.3.6 编辑UserMapper

2.3.7 关于前后端报错说明

2.4 关于前端路由说明 

2.5 左侧菜单列表展现

2.5.1 关于rights表说明

 2.5.2 编辑Rights POJO

2.5.3 搭建层级代码结构

 2.5.4 业务接口

 2.5.5 编辑RightsController

2.5.6 编辑RightsService

2.5.7 编辑RightsMapper

2.5.8 页面效果展现

2.6.1 配置路由

三. 用户模块管理

3.1 用户列表展现

3.1.1 接口文档说明

3.1.2 分页语法结构

3.1.3 编辑UserController

3.1.4 编辑UserService

3.1.5 编辑UserMapper

3.1.6 页面效果展现

3.2 用户状态修改

3.2.1 接口文档

3.2.2 编辑UserController

3.2.3 编辑UserService

3.2.4 编辑UserMapper

3.3 用户删除操作

3.3.1 业务接口

3.3.2 编辑UserController

3.3.3 编辑UserService

3.3.4 编辑UserMapper

3.3.5 关于删除操作bug说明

3.4 用户新增操作

3.4.1 业务接口文档

3.4.2 编辑UserController

3.4.3 编辑UserService

3.4.4 编辑UserMapper

3.5 用户更新操作-回显

3.5.1 业务接口文档

3.5.2 编辑UserController

3.5.3 编辑UserService

3.5.4 编辑UserMapper

3.6 用户更新操作-更新

3.6.1 业务接口说明

3.6.2 编辑UserController

3.6.3 编辑UserService

3.6.4 编辑UserMapper

3.7 全局异常处理机制

3.7.1 现象描述

2.7.2 全局异常处理机制

四. Mybatis-Plus

4.1 MP介绍

4.2 MP入门案例

4.2.1 导入jar包

4.2.2 编辑POJO对象

 4.2.3 继承公共BaseMapper

 4.2.4 修改YML配置文件

 4.2.5 MP入门案例

注意事项

 1. 主启动方法不能执行

2. pom.xml文件jar包报错(比较常见的问题) 

3. 编辑properties文件

总结


前言

记录一下项目创建的全流程,以及我在创建的过程中遇到的千奇百怪的问题

提示:以下是本篇文章正文内容,下面案例可供参考

一、环境搭建-spring

1.1 IDEA环境搭建

具体搭建过程,略

 1.1.1 创建项目配置

URL: https://start.aliyun.com

 1.1.2 选择Springboot版本

说明: 其中选择web包 表示添加spring/springmvc等jar包文件

 1.1.3 项目设置

一些基本设置

1.1.4 导入pom.xml文件

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--mybatis依赖包-->
       <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <!--spring整合mybatis-plus -->
        <!-- <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>-->

        <!--jdbc依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--添加lombok的包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

1.1.4 导入src文件

说明: 下载码云中的后端项目,导入src文件即可

1.1.5项目启动测试

二. 用户登录实现

2.1.1 user表说明

2.1.2 编辑User POJO

1. 编辑父级POJO

 2. 编辑User 的POJO

 2.2.1 前后端项目说明

  1. localhost:8000 是VUE UI客户端工具的路径
  2. localhost:8080 是前端项目的路径
  3. localhost:8091 是后端项目的路径

2.2.2 前后端调用说明

 2.3.1封装SysResult对象

package com.jt.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor //vo 与web前端与后端交互的对象
public class SysResult implements Serializable {
    private Integer status; //200成功  201失败
    private String  msg;    //提示信息
    private Object  data;   //服务器返回值数据

    public static SysResult fail(){

        return new SysResult(201,"业务调用失败!!",null);
    }

    public static SysResult success(){

        return new SysResult(200,"业务调用成功!!",null);
    }


    public static SysResult success(Object data){

        return new SysResult(200,"业务调用成功!!",data);
    }

    public static SysResult success(String msg,Object data){

        return new SysResult(200,msg,data);
    }
}

2.3.2 业务接口文档

  • 请求路径: /user/login
  • 请求方式: POST
  • 请求参数
参数名称 参数说明 备注
username 用户名 不能为空
password 密码 不能为空
  • 响应数据 SysResult对象
参数名称 参数说明 备注
status 状态信息 200表示服务器请求成功 201表示服务器异常
msg 服务器返回的提示信息 可以为null
data 服务器返回的业务数据 返回密钥token信息

返回值格式如下:

{"status":200,"msg":"服务器调用成功!","data":"1e893a97634847b3a8b499b173bea620"}

2.3.3 MD5加密算法

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致.

核心做法: 限定次数!!!

2.3.4 编辑UserController

package com.jt.controller;

import com.jt.pojo.User;
import com.jt.service.UserService;
import com.jt.vo.PageResult;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.sql.SQLException;
import java.util.List;

@RestController
@RequestMapping("/user")
@CrossOrigin    //前后端进行跨域操作
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/findAll")
    public List<User> findAll(){

        return userService.findAll();
    }

    /**
     * 业务需求: 实现用户登录操作
     * URL地址: /user/login
     * 请求类型: post
     * 参数:    username/password  json串
     * 返回值:  SysResult对象(token密钥)
     */
    @PostMapping("/login")
    public SysResult login(@RequestBody User user){

        String token = userService.login(user);
        //判断token是否为null
        if(token == null){
            return SysResult.fail(); //表示用户登录失败!!
        }
        return SysResult.success(token);//表示用户登录成功!!
    }
}

2.3.5 编辑UserService

1. 编辑接口

public interface UserService {

    List<User> findAll();

    String login(User user);
}

2. 编辑实现类

@Service
public class UserServiceImpl implements UserService{

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }

    /**
     * 业务思维能力: 用户登录操作
     * 登录业务逻辑:
     *      1.将用户的密码进行加密处理
     *      2.根据用户名和密码进行数据库查询
     *        查到了: 用户名和密码正确  返回token密钥
     *        没查到: 用户名和密码错误  返回null
     *
     * @param user
     * @return
     */
    @Override
    public String login(User user) {
        //1.将密码加密处理
        String password = user.getPassword();
        String md5Pass = DigestUtils.md5DigestAsHex(password.getBytes());
        user.setPassword(md5Pass);
        //2.根据用户名和密码查询数据库
        User userDB = userMapper.findUserByUP(user);
        if(userDB == null){
            //用户名或者密码错误
            return null;
        }
        //密钥:该密钥是用户登录的唯一的标识符,特点:独一无二
        String token = UUID.randomUUID().toString()
                        .replace("-", "");
        return token;
    }
}

2.3.6 编辑UserMapper

1. 编辑Mapper接口

public interface UserMapper {

    List<User> findAll();

    User findUserByUP(User user);
}

2. 编辑xml映射文件

	<select id="findUserByUP" resultType="User">
        select * from user
            where username=#{username}
            and   password=#{password}
    </select>

2.3.7 关于前后端报错说明

1. 检查请求路径

2. 检查请求参数 

3. 检查响应结果

2.4 关于前端路由说明 

2.5 左侧菜单列表展现

2.5.1 关于rights表说明

说明: 通过parent_id 控制父子关系.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值