07-Springboot实战项目(黑马的瑞吉项目)-更新于2024.05

getway 

 学习视频:https://www.bilibili.com/video/BV13a411q753/?vd_source=b145378dc4a63e7f1ee72b34a3e543fb

1.学习收获

也是为微服务和微服务技术做准备

 2.技术选型

用户层:H5,VUE.js,ElementUI,微信小程序

工具:git,maven,junit

网关层:Nigix

应用层:springboot,spring mvc,spring session, spring, swagger, lombok

数据层:mysql,mybatis,mybatis pus, redis

 

 

 

1.数据库信息准备与项目的搭建与前端资源放行的配置


 1.1 数据库信息准备

1.2 项目的搭建

a.建议项目

b.pom文件

c.启动类

1.3 前端资源放行的配置

 

 

2.Java项目结构(基于mybatisPlus)


 

<!--数据库连接坐标-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>

2.1 实体类文件entity, 举例:Employee为实体类

2.2 mapper文件夹(当对应多个表时, 创建在Dao文件夹下)

2.3 service文件夹,包含service接口与实现类

-具体的业务

2.4 controller文件夹,与前端交互

-调用“具体的业务方法”

 

3.Java过滤器Filter讲解(Java基础)


 3.1.为什么要使用Filter

-例如实现 URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

-Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。
-通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。

3.2.Filter对应的包

ps:这里继承Filter千万不要导错了包import javax.servlet.*;

3.3.以登录为例 

3.3.1、创建自定义过滤器LoginCheckFiler(如何编写过滤器)
1、编写java类实现Filter接口
2、重写doFilter方法
3、设置拦截的url

3.3.3 如下图是完善过滤器的处理逻辑 

 

4.SpringBoot实现统一Json格式返回、全局异常和自定义处理


 4.1参考链接:https://lhz1219.blog.csdn.net/article/details/122983301?spm=1001.2101.3001.6650.11&utm_medium=distribute.pc_relevant.none-task-blog-2~default~OPENSEARCH~Rate-11-122983301-blog-123440041.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~OPENSEARCH~Rate-11-122983301-blog-123440041.pc_relevant_default&utm_relevant_index=12

4.2 统一Json返回:不管系统是正常返回,还是错误返回,为了保证前端能够对返回数据进行统一的处理,实现统一Json返回是很有必要的。

4.2.1 编写统一响应类R<T>
4.2.2 应用,我们在Controller方法的返回时,写成统一的R类,如下:
package com.*;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * 能用返回结果,服务端响应的数据最终都会封装成此对象
 * @param <T>
 */
@Data
public class R<T>{

    private Integer code; //编码:1成功,0和其他数据为失败

    private String msg; //错误信息

    private T data;

    private Map map = new HashMap(); // 动态数据

    public static <T> R<T> success(T object){
        R<T> tr = new R<T>();
        tr.data = object;
        tr.code=1;
        return tr;
    }


    public static <T> R<T> error(String msg){
        R<T> tr = new R<T>();
        tr.msg = msg;
        tr.code=0;
        return tr;
    }

    public  R<T> add(String key, Object value){
        this.map.put(key,value);
        return this;
    }
}

 

 

 

 

 

5.公共字段自动填充


   

 

posted @ 2022-12-26 17:31  Sara软件测试  阅读(111)  评论(0)    收藏  举报