Java后端每日面试题(day6)
创始人
2024-11-14 04:10:03
0

目录

  • 创建线程的方式
  • 锁的分类
    • 公平锁与非公平锁
    • 共享式与独占式锁
    • 悲观锁与乐观锁
  • rbac相关的表
  • spring security原理
    • DelegatingFilterProxy
    • FilterChainProxy
    • SecurityFilterChain
    • Spring Security 作用机制大致如下:
  • mybatis一对一,一对多
    • 一对一
    • 一对多

创建线程的方式


线程常用的几种创建方式为:

  • 继承Thread类;

  • 实现Runnable接口;

  • 实现Callable接口;

  • 使用ExecutorService线程池。

锁的分类

公平锁与非公平锁


按照线程 访问顺序 获取对象锁。synchronized是非公平锁,Lock默认是非公平锁,可以设置为公平锁,公平锁会影响性能。

共享式与独占式锁


共享式与独占式的最主要区别在于:

同一时刻独占式只能有一个线程获取同步状态,而共享式在同一时刻可以有多个线程获取同步状态。

例如读操作可以有多个线程同时进行,而写操作同一时刻只能有一个线程进行写操作,其他操作都会被阻塞。

悲观锁与乐观锁


悲观锁,每次访问资源都会加锁,执行完同步代码释放锁,synchronizedReentrantLock属于悲观锁。

乐观锁,不会锁定资源,所有的线程都能访问并修改同一个资源,如果没有冲突就修改成功并退出,否则就会继续循环尝试。乐观锁最常见的实现就是CAS

适用场景

悲观锁适合写操作多的场景。

乐观锁适合读操作多的场景,不加锁可以提升读操作的性能

rbac相关的表


RBAC(Role-Based Access Control,基于角色的访问控制)是一种常用的访问控制机制,用于管理系统中的用户权限

RBAC通过将用户分配给角色,并将权限授予角色,从而控制用户对资源的访问。

基于RBAC实现的权限管理通常需要涉及以下几张表:
RBAC

spring security原理


对于servlet三大组件,spring security位于Filter过滤链中,SpringSecurity 本质就是一个过滤器链
三大组件

SpringSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链

在这里插入图片描述

DelegatingFilterProxy

Spring 提供了一个 DelegatingFilterProxy 代理类,DelegatingFilterProxy 实现了Filter,因此它可以被注入到 FilterChain(过滤器链)中,同时,当请求到来时,它会把请求转发到Spring容器 中实现了Filter接口的 Bean 实体,DelegatingFilterProxy会从ApplicationContext中获取FilterBean 实体,然后将请求转发给到它,所以 DelegatingFilterProxy 桥接了 Servlet容器 和 Spring容器。

FilterChainProxy

DelegatingFilterProxy从Spring容器中获取得到的就是FilterChainProxy实体,而FilterChainProxy也是一个代理类,它最终会将请求转发到 Spring Security 提供的SecurityFilterChain中,FilterChainProxy就是 Spring Security 真正的入口起始点

SecurityFilterChain

SecurityFilterChain作用其实跟Servlet的FilterChain一样,同样维护了很多Filters,这些Filters 是由Spring Security提供的,每个 Security Filter 都有不同的职能,比如登录认证、CSRF防御…

Spring Security 作用机制大致如下:

  1. 注册标准Filter:首先,会自动注入一个DelegatingFilterProxy到 Servlet 的FilterChain中。
  2. 请求转发到 Spring Security:当请求到来时,DelegatingFilterProxy就会自动在 Spring容器 中搜索名称为springSecurityFilterChain的Filter实体,其实际类型为FilterChainProxy。DelegatingFilterProxy最终会将请求转发给到FilterChainProxy。
  3. 找到匹配请求处理的SecurityFilterChain:FilterChainProxy内部维护了一系列SecurityFilterChains,他会依据请求内容找到对应处理该请求的SecurityFilterChain。
  4. 请求处理:找到能处理请求的第一个SecurityFilterChain后,就会遍历该SecurityFilterChain内部维护的一系列Filters,依次让这些 Security Filter 处理该请求,完成认证、授权等功能。

mybatis一对一,一对多


一对一

元素,通常可以配置一下属性

  • propery:指定映射到实体类对象属性,与表字段一一对应
  • column:指定表中对应的字段
  • javaType:指定映射到实体对象属性的类型
  • select:指定引入嵌套查询的子SQL语句,该属性用于关联映射中的嵌套查询
  • fetchType:指定在关联查询时是否启用延迟加载。FetchType属性有 lazyeager(实时)两个属性值,默认值为 lazy
    默认为lazy(默认关联映射延迟加载)

一对多

使用Mapper注解,实现一对一和一对多关系查询

                                                                                                                        

相关内容

热门资讯

玩家交流!aapoker下载教... 玩家交流!aapoker下载教程,太坑了都是存在有挂(2020已更新)(哔哩哔哩);aapoker下...
玩家必看攻略“德州作z弊设备”... 玩家必看攻略“德州作z弊设备”(透视)详细开挂辅助技巧中的透视功能是一项综合运用了现代科技、数学理论...
黑科技辅助(德扑输赢)外挂软件... 黑科技辅助(德扑输赢)外挂软件透明挂智能ai代打辅助安装插件(透视)科技教程(2024已更新)(哔哩...
黑科技辅助挂!wepoke有,... 黑科技辅助挂!wepoke有,太坑了原来存在有挂(2020已更新)(哔哩哔哩);wepoke有简单的...
重大推荐“扑克时间是假的吗”(... 重大推荐“扑克时间是假的吗”(透视)详细开挂辅助技巧透视功能通过植入特定软件或使用物理设备,实时分析...
黑科技辅助(扑克世界)外挂软件... 黑科技辅助(扑克世界)外挂软件透明挂智能ai代打辅助挂(透视)辅助教程(2023已更新)(哔哩哔哩)...
黑科技系统!德州之星有外挂,太... 黑科技系统!德州之星有外挂,太坑了先前真的有挂(2021已更新)(哔哩哔哩);德州之星有外挂AI智能...
必看攻略“wepokerplu... 必看攻略“wepokerplus有没有挂”(透视)详细开挂辅助技巧尤其是wepoker(私人局透视方...
黑科技辅助(Wepoke大厅房... 黑科技辅助(Wepoke大厅房)外挂软件透明挂智能ai辅助app(透视)插件教程(2023已更新)(...
一分钟快速了解!wepower... 一分钟快速了解!wepower软件靠谱,太坑了固有真的有挂(2020已更新)(哔哩哔哩);1、完成w...