欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

项目琐碎知识点

程序员文章站 2022-07-12 16:30:35
...

什么是RBAC

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。

简单地说,就是一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。

RBAC实际上就是针对产品去发掘需求时所用到的Who(角色)、What(拥有什么资源)、How(有哪些操作)的方式。

在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What进行How的操作。

https://blog.csdn.net/qq_28988969/article/details/100995546

@ApiOperation

@ApiOperation注解不是Spring自带的,它是是swagger里的。

注解@ApiOperation是用来构建Api文档的。

@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response =
“接口返回参数类型”, notes = “接口发布说明”;

Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目

Swagger 常用注解使用详解 https://blog.csdn.net/wyb880501/article/details/79576784

日志

​Spring Boot默认使用LogBack日志系统,如果不需要更改为其他日志系统如Log4j2等,则无需多余的配置,LogBack默认将日志打印到控制台上。

而Spring Boot项目一般都会引用 spring-boot-starter 或者 spring-boot-starter-web 的依赖,这两个依赖中包含了 spring-boot-starter-logging 的依赖,所以我们如果不使用别的日志框架,无需修改依赖。

如果我们要使用日志功能,只需要在相应类上加上@Slf4j(需要lombok插件)注解,在对应方法中log.info(),log.error()等就可以输出日志。

注解@Slf4j的使用https://www.jianshu.com/p/6e137ee836a1

SLF4J将日志分为trace、debug、info、warn、error五个级别,每个级别对应记录不同的日志,对应不同的使用场景。

  • trace 是最低优先级的日志,一般用来追踪详细的程序运行流,比如程序的运行过程中,运行到了哪一个方法,进入了哪一条分支。通过trace程序的运行流程,可以判断程序是否按照期望的逻辑在运行。

  • debug 是比 trace 高一级别的日志,该级别的日志就是用来debug用的。这类日志往往用在判断是否有出现bug的场景,且往往记录了代码运行的详细信息,比如方法调用传入的参数信息。

  • infodebug 高一级别,用来记录程序运行的一些关键信息,它不像 trace 那样记录程序运行的整个流程,也不像 debug 那样为了解决问题而记录详细的信息。info记录的是整个系统的运行信息,比如系统运行到了哪一个阶段,到达了哪一个状态。

  • warninfo 的级别更高,用来记录一些警告信息。警告信息表示,程序进入了一个特殊的状态,在该状态下程序可以继续运行,但是不建议让程序进入该状态,因为该状态可能导致结果出现问题。

  • error 级别的日志是最高优先级了,用来记录运行时的错误信息,表示程序运行过程中出现了需要被解决的问题,往往是一些异常。使用 error 日志的时候,一般会将详细的异常出现的原因记录。

序列化

为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来,这是java中的提供的保存对象状态的机制—序列化。
https://blog.csdn.net/pmdream/article/details/90175448

分页查询

新建PageTableRequest 分页工具类

@Data
public class PageTableRequest implements Serializable {

    private Integer page;//初始页
    private Integer limit;//一页几条数据
    private Integer offset;//页码

    public void countOffset(){
        if(null == this.page || null == this.limit){
            this.offset = 0;
            return;
        }
        this.offset = (this.page - 1) * limit;
    }
}
select * from *** limit x, y;
  • ***为数据表
  • x 为查询结果的索引值
  • y 为查询结果返回的数量

https://blog.csdn.net/liujiahan629629/article/details/19698091

SpringSecurity

导入依赖

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

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

SpringSecurity默认的用户名是user,密码则在启动项目时会打印在控制台上。

每次启动都会分配不一样的密码。SpringSecurity同样支持自定义密码,只要在application.yml中简单配置一下即可

spring:
	security:
    	user:
      		name: admin
      		password: 123456

HttpSecurity类

里面是安全相关方法

CSRF

CSRF(Cross-site request forgery),中文名称:跨站.请.求.伪.造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
https://www.runoob.com/regexp/regexp-syntax.html
https://www.cnblogs.com/xhj123/p/6032683.html