当前位置: 首页 > news >正文

HBase常用的Filter过滤器操作

HBase过滤器种类很多,我们选择8种常用的过滤器进行介绍。为了获得更好的示例效果,先利用HBase Shell新建students表格,并往表格中进行写入多行数据。

一、数据准备工作

(1)在默认命名空间中新建表格students,设置列族info、score。

hbase:002:0> create 'students','info','score'
2024-03-26 00:22:15,810 INFO  [main] client.HBaseAdmin (HBaseAdmin.java:postOperationResult(3591)) - Operation: CREATE, Table Name: default:students, procId: 290 completed
Created table students
Took 3.1425 seconds                                                                                                                   
=> Hbase::Table - students

(2)往students表格中写入5行数据,并用scan 'students'命令查看写入结果。

hbase:005:0> put 'students','s001','info:name','Jack'
Took 30.6978 seconds
hbase:017:0> put 'students','s001','info:age','18'
Took 0.0419 seconds
hbase:019:0> put 'students','s001','score:English','95'
Took 0.0472 seconds 
hbase:021:0> put 'students','s002','info:name','Tom'
Took 0.0255 seconds                                                                                                                   
hbase:022:0> put 'students','s002','info:age','20'
Took 0.0160 seconds                                                                                                                   
hbase:023:0> put 'students','s002','score:Chinese','85'
Took 0.0296 seconds                                                                                                                   
hbase:024:0> put 'students','s002','score:Math','90'
Took 0.0155 seconds                                                                                                                   
hbase:025:0> put 'students','s003','info:name','Mike'
Took 0.0188 seconds                                                                                                                   
hbase:026:0> put 'students','s003','info:age','19'
Took 0.0183 seconds                                                                                                                   
hbase:027:0> put 'students','s003','score:Chinese','90'
Took 0.0178 seconds                                                                                                                   
hbase:028:0> put 'students','s003','score:Math','95'
Took 0.0445 seconds                                                                                                                   
hbase:029:0> put 'students','s004','info:name','Lucy'
Took 0.0104 seconds                                                                                                                   
hbase:030:0> put 'students','s004','score:English','100'
Took 0.0170 seconds                                                                                                                   
hbase:031:0> put 'students','s005','info:name','Lily'
Took 0.0249 seconds                                                                                                                   
hbase:032:0> put 'students','s005','score:Chinese','99'
Took 0.0228 seconds                                                                                                                   
hbase:033:0> scan 'students'
ROW                                COLUMN+CELL                                                                                        s001                              column=info:age, timestamp=2024-03-26T00:25:17.982, value=18                                       s001                              column=info:name, timestamp=2024-03-26T00:24:39.510, value=Jack                                    s001                              column=score:English, timestamp=2024-03-26T00:25:52.207, value=95                                  s002                              column=info:age, timestamp=2024-03-26T00:26:46.922, value=20                                       s002                              column=info:name, timestamp=2024-03-26T00:26:26.924, value=Tom                                     s002                              column=score:Chinese, timestamp=2024-03-26T00:27:13.181, value=85                                  s002                              column=score:Math, timestamp=2024-03-26T00:27:28.787, value=90                                     s003                              column=info:age, timestamp=2024-03-26T00:28:08.402, value=19                                       s003                              column=info:name, timestamp=2024-03-26T00:27:48.629, value=Mike                                    s003                              column=score:Chinese, timestamp=2024-03-26T00:28:46.714, value=90                                  s003                              column=score:Math, timestamp=2024-03-26T00:29:01.881, value=95                                     s004                              column=info:name, timestamp=2024-03-26T00:29:19.868, value=Lucy                                    s004                              column=score:English, timestamp=2024-03-26T00:29:44.831, value=100                                 s005                              column=info:name, timestamp=2024-03-26T00:30:04.231, value=Lily                                    s005                              column=score:Chinese, timestamp=2024-03-26T00:30:25.477, value=99                                  
5 row(s)
Took 0.3369 seconds 

二、过滤器的使用介绍

1.ValueFilter过滤器

根据数据列单元格的值进行过滤。值过滤器的比较方式有二进制位比较(binary)和子字符串匹配比较(substring)。

(1)按二进制位进行值比较

使用get命令,查询students表格中,行键为s001,单元格值为Jack的数据结果。

#ValueFilter(=,'binary:Jack')是值过滤器,比较方式是binary二进制
hbase:034:0> get 'students','s001',{FILTER=>"ValueFilter(=,'binary:Jack')"}
COLUMN                             CELL                                                                                               info:name                         timestamp=2024-03-26T00:24:39.510, value=Jack                                                      
1 row(s)
Took 0.6506 seconds

使用scan命令,扫描出students表格中,单元格值为90的数据结果。

#查询结果是多条,需要用scan命令全表扫描,不能使用get命令
hbase:036:0> scan 'students',{FILTER=>"ValueFilter(=,'binary:90')"}
ROW                                COLUMN+CELL                                                                                        s002                              column=score:Math, timestamp=2024-03-26T00:27:28.787, value=90                                     s003                              column=score:Chinese, timestamp=2024-03-26T00:28:46.714, value=90                                  
2 row(s)
Took 0.2162 seconds

(2)按子字符串匹配比较

使用get命令,查询students表格中,行键为s001,单元格值包含子字符串ac的数据结果。

hbase:037:0> get 'students','s001',{FILTER=>"ValueFilter(=,'substring:ac')"}
COLUMN                             CELL                                                                                               info:name                         timestamp=2024-03-26T00:24:39.510, value=Jack                                                      
1 row(s)
Took 0.1578 seconds 

使用scan命令,扫描出表格students中单元格值包含子字符串0的数据结果。

#查询结果是多条,需要用scan命令全表扫描,不能使用get命令
hbase:038:0> scan 'students',{FILTER=>"ValueFilter(=,'substring:0')"}
ROW                                COLUMN+CELL                                                                                        s002                              column=info:age, timestamp=2024-03-26T00:26:46.922, value=20                                       s002                              column=score:Math, timestamp=2024-03-26T00:27:28.787, value=90                                     s003                              column=score:Chinese, timestamp=2024-03-26T00:28:46.714, value=90                                  s004                              column=score:English, timestamp=2024-03-26T00:29:44.831, value=100                                 
3 row(s)
Took 0.0868 seconds

2.QualifierFilter过滤器

列限定符过滤器QualifierFilter是只根据数据列的列限定符进行过滤,并不关注列族名称。列限定符过滤器的常用比较方式为二进制位(binary)比较。

使用get命令,查询students表格中,行键为s001,列限定符为name的数据结果。

hbase:039:0> get 'students','s001',{FILTER=>"QualifierFilter(=,'binary:name')"}
COLUMN                             CELL                                                                                               info:name                         timestamp=2024-03-26T00:24:39.510, value=Jack                                                      
1 row(s)
Took 0.3310 seconds

使用scan命令,扫描students表格中,列限定符为name的数据结果。

hbase:041:0> scan 'students',{FILTER=>"QualifierFilter(=,'binary:name')"}
ROW                                COLUMN+CELL                                                                                        s001                              column=info:name, timestamp=2024-03-26T00:24:39.510, value=Jack                                    s002                              column=info:name, timestamp=2024-03-26T00:26:26.924, value=Tom                                     s003                              column=info:name, timestamp=2024-03-26T00:27:48.629, value=Mike                                    s004                              column=info:name, timestamp=2024-03-26T00:29:19.868, value=Lucy                                    s005                              column=info:name, timestamp=2024-03-26T00:30:04.231, value=Lily                                    
5 row(s)
Took 0.0845 seconds

3.ColumnPrefixFilter过滤器

列前缀符过滤器ColumnPrefixFilter是根据数据列的列限定符的前缀进行过滤。前缀过滤必须从第一个字符开始匹配,而子字符串过滤可以从任何位置开始进行子串匹配。前缀过滤器严格区分字母大小写

使用get命令,查询出students表格中,行键为s002,列限定符的前缀字符串为Chi的数据结果。

hbase:042:0> get 'students','s002',{FILTER=>"ColumnPrefixFilter('Chi')"}
COLUMN                             CELL                                                                                               score:Chinese                     timestamp=2024-03-26T00:27:13.181, value=85                                                        
1 row(s)
Took 0.1693 seconds 

使用scan命令,扫描students表格,列限定符的前缀字符串为Chi的数据结果。

hbase:044:0> scan 'students',{FILTER=>"ColumnPrefixFilter('Chi')"}
ROW                                COLUMN+CELL                                                                                        s002                              column=score:Chinese, timestamp=2024-03-26T00:27:13.181, value=85                                  s003                              column=score:Chinese, timestamp=2024-03-26T00:28:46.714, value=90                                  s005                              column=score:Chinese, timestamp=2024-03-26T00:30:25.477, value=99                                  
3 row(s)
Took 0.0397 seconds 

4.RowFilter过滤器

行键过滤器RowFilter是根据行键对数据列进行过滤。

注意:一般不在get命令中使用行键过滤器,get命令必须指定唯一确定完整的行键,没有必要再对行键进行过滤。

(1)按二进制位比较。

使用scan命令,扫描students表格,筛选出行键值为s001的所有数据结果。

hbase:045:0> scan 'students',{FILTER=>"RowFilter(=,'binary:s001')"}
ROW                                COLUMN+CELL                                                                                        s001                              column=info:age, timestamp=2024-03-26T00:25:17.982, value=18                                       s001                              column=info:name, timestamp=2024-03-26T00:24:39.510, value=Jack                                    s001                              column=score:English, timestamp=2024-03-26T00:25:52.207, value=95                                  
1 row(s)
Took 0.1297 seconds

 (2)按子字符串匹配比较。

使用scan命令,扫描students表格,筛选出行键值包含子字符串01的所有数据结果。

hbase:046:0> scan 'students',{FILTER=>"RowFilter(=,'substring:01')"}
ROW                                COLUMN+CELL                                                                                        s001                              column=info:age, timestamp=2024-03-26T00:25:17.982, value=18                                       s001                              column=info:name, timestamp=2024-03-26T00:24:39.510, value=Jack                                    s001                              column=score:English, timestamp=2024-03-26T00:25:52.207, value=95                                  
1 row(s)
Took 0.3426 seconds

5.PrefixFilter过滤器

行键前缀过滤器PrefixFilter是根据行键的前缀进行过滤。前缀过滤必须从行键的第一个字符开始匹配,严格区分字母大小写

使用scan命令,扫描students表格,筛选出行键值以s00为前缀开头的数据结果。

hbase:047:0> scan 'students',{FILTER=>"PrefixFilter('s00')"}
ROW                                COLUMN+CELL                                                                                        s001                              column=info:age, timestamp=2024-03-26T00:25:17.982, value=18                                       s001                              column=info:name, timestamp=2024-03-26T00:24:39.510, value=Jack                                    s001                              column=score:English, timestamp=2024-03-26T00:25:52.207, value=95                                  s002                              column=info:age, timestamp=2024-03-26T00:26:46.922, value=20                                       s002                              column=info:name, timestamp=2024-03-26T00:26:26.924, value=Tom                                     s002                              column=score:Chinese, timestamp=2024-03-26T00:27:13.181, value=85                                  s002                              column=score:Math, timestamp=2024-03-26T00:27:28.787, value=90                                     s003                              column=info:age, timestamp=2024-03-26T00:28:08.402, value=19                                       s003                              column=info:name, timestamp=2024-03-26T00:27:48.629, value=Mike                                    s003                              column=score:Chinese, timestamp=2024-03-26T00:28:46.714, value=90                                  s003                              column=score:Math, timestamp=2024-03-26T00:29:01.881, value=95                                     s004                              column=info:name, timestamp=2024-03-26T00:29:19.868, value=Lucy                                    s004                              column=score:English, timestamp=2024-03-26T00:29:44.831, value=100                                 s005                              column=info:name, timestamp=2024-03-26T00:30:04.231, value=Lily                                    s005                              column=score:Chinese, timestamp=2024-03-26T00:30:25.477, value=99                                  
5 row(s)
Took 0.4404 seconds

6.FamilyFilter过滤器

列族过滤器FamilyFilter是根据列族名称进行过滤。列族过滤器的比较方式有二进制位比较(binary)、子字符串匹配比较(substring)等。

(1)按二进制位比较。

使用scan命令,扫描表格students,筛选出列族名称值为info的数据结果。

hbase:005:0> scan 'students',FILTER=>"FamilyFilter(=,'binary:info')"
ROW                   COLUMN+CELL                                               s001                 column=info:age, timestamp=2024-03-26T00:25:17.982, value=18                                                                         s001                 column=info:name, timestamp=2024-03-26T00:24:39.510, value=Jack                                                                    s002                 column=info:age, timestamp=2024-03-26T00:26:46.922, value=20                                                                        s002                 column=info:name, timestamp=2024-03-26T00:26:26.924, value=Tom                                                     s003                 column=info:age, timestamp=2024-03-26T00:28:08.402, value=19                                                       s003                 column=info:name, timestamp=2024-03-26T00:27:48.629, value=Mike                                                  s004                 column=info:name, timestamp=2024-03-26T00:29:19.868, value=Lucy                                                    s005                 column=info:name, timestamp=2024-03-26T00:30:04.231, value=Lily                                                     
5 row(s)
Took 0.0399 seconds 

(2)按子字符串匹配比较。

使用scan命令,扫描表格students,筛选出列族名称包含子字符串s的数据结果。

hbase:008:0> scan 'students',FILTER=>"FamilyFilter(=,'substring:s')"
ROW                                COLUMN+CELL                                                                                        s001                              column=score:English, timestamp=2024-03-26T00:25:52.207, value=95                                  s002                              column=score:Chinese, timestamp=2024-03-26T00:27:13.181, value=85                                  s002                              column=score:Math, timestamp=2024-03-26T00:27:28.787, value=90                                     s003                              column=score:Chinese, timestamp=2024-03-26T00:28:46.714, value=90                                  s003                              column=score:Math, timestamp=2024-03-26T00:29:01.881, value=95                                     s004                              column=score:English, timestamp=2024-03-26T00:29:44.831, value=100                                 s005                              column=score:Chinese, timestamp=2024-03-26T00:30:25.477, value=99                                  
5 row(s)
Took 0.0915 seconds

7.SingleColumnValueFilter过滤器

单列值过滤器SingleColumnValueFilters是根据指定列族和列限定符的单个数据列的单元格值进行过滤,类似SQL中的”select列名from表名where列名=值”语句。
(1)按二进制位比较。

使用scan命令,扫描表格students,筛选出列族info,列限定符age的单元格值为19的数据列。

hbase:006:0> scan 'students',{COLUMN=>'info:age',FILTER=>"SingleColumnValueFilter('info','age',=,'binary:19')"}
ROW                                COLUMN+CELL                                                                                        s003                              column=info:age, timestamp=2024-03-26T00:28:08.402, value=19                                       
1 row(s)
Took 0.4166 seconds

(2)按子字符串匹配比较。

使用scan命令,扫描表格students,筛选出列族info,列限定符name的值包括子字符串y的数据。

hbase:008:0> scan 'students',{COLUMN=>'info:name',FILTER=>"SingleColumnValueFilter('info','name',=,'substring:y')"}
ROW                                COLUMN+CELL                                                                                        s004                              column=info:name, timestamp=2024-03-26T00:29:19.868, value=Lucy                                    s005                              column=info:name, timestamp=2024-03-26T00:30:04.231, value=Lily                                    
2 row(s)
Took 0.0658 seconds 


 

相关文章:

HBase常用的Filter过滤器操作

HBase过滤器种类很多,我们选择8种常用的过滤器进行介绍。为了获得更好的示例效果,先利用HBase Shell新建students表格,并往表格中进行写入多行数据。 一、数据准备工作 (1)在默认命名空间中新建表格students&#xf…...

容器安全与防御(德迅蜂巢)

通过容器可以快速的运行应用、迁移应用、快速集成、快速部署、也提高了系统的资源利用率,因此现在越来越多的企业把应用上云,来达到快速上线应用、方便运维的目的。容器安全也逐渐地被重视起来,了解容器如何检测当前企业环境内容器环境是否安…...

【面经八股】搜广推方向:面试记录(十一)

【面经&八股】搜广推方向:面试记录(十一) 文章目录 【面经&八股】搜广推方向:面试记录(十一)1. 自我介绍2. 实习经历问答4. 编程题5. 反问1. 自我介绍 。。。。。。 2. 实习经历问答 就是对自己实习事情要足够的清晰,不熟的不要写在简历上!!! 其中,有个 …...

第十四章 MySQL

一、MySQL 1.1 MySql 体系结构 MySQL 架构总共四层,在上图中以虚线作为划分。 1. 最上层的服务并不是 MySQL 独有的,大多数给予网络的客户端/服务器的工具或者服务都有类似的架构。比如:连接处理、授权认证、安全等。 2. 第二层的架构包括…...

C++项目——集群聊天服务器项目(七)Model层设计、注册业务实现

在前几节的研究中,我们已经实现网络层与业务层分离,本节实现数据层与业务层分离,降低各层之间的耦合性,同时实现用户注册业务。 网络层专注于处理网络通信与读写事件 业务层专注于处理读写事件到来时所需求的各项业务 数据层专…...

VBA语言専攻介绍(20240331更新)

VBA语言専攻简介 “VBA语言専攻”是大家汲取知识的源泉,是提高自己能力的净土,正如我对平台的介绍:社会的进步,源于对知识的尊重和敬仰。希望每一位学员,每一位关注平台的朋友,都能很好的利用这个平台来学…...

Golang- 邮件服务,发送邮件

依赖 go get -u github.com/jordan-wright/email文档 文档 示例代码 邮箱的相关配置 # email configuration email:port: 25 # 端口要配置25 否则可能出现EOF错误from: xxx1qq.comhost: smtp.qq.comis-ssl: truesecret: xxxxxnickname: 大锦余发送邮件代码 package utili…...

C语言:编译和链接

前言 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令(二进制指令)。第2种是执行环境,它用于实际执行代码。 目录 1.翻译环境1.1 预处理(预编…...

JavaEE 初阶篇-深入了解多线程安全问题(出现线程不安全的原因与解决线程不安全的方法)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 多线程安全问题概述 1.1 线程不安全的实际例子 2.0 出现线程不安全的原因 2.1 线程在系统中是随机调度且抢占式执行的模式 2.2 多个线程同时修改同一个变量 2.3 线…...

计算机网络⑦ —— 网络层协议

1. ARP协议 在传输⼀个 IP 数据报的时候,确定了源 IP 地址和⽬标 IP 地址后,就会通过主机路由表确定 IP 数据包下⼀跳。然⽽,⽹络层的下⼀层是数据链路层,所以我们还要知道下⼀跳的 MAC 地址。由于主机的路由表中可以找到下⼀跳的…...

正弦实时数据库(SinRTDB)的使用(7)-历史统计查询

前文已经将正弦实时数据库的使用进行了介绍,需要了解的可以先看下面的博客: 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…...

编译和链接知识点

为什么我们在vs等编译器上写出的代码通过运行就会实现相关功能呢? 解决这个问题的关键就是关于编译与链接的知识。 首先从大的分类里有两部分:编译和链接 而编译这一大的部分又分为预处理(也叫预编译),编译&#xf…...

大话设计模式之工厂模式

工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需指定将要创建的对象的确切类。通过使用工厂模式,我们可以将对象的创建和使用分离,从而使代码更具灵活性和可维护性。…...

Windows MySQL通过data 文件夹恢复数据

前言 在MySql数据库中,为了备份和恢复数据,通常会使用mysqldump工具来导出和导入数据。但是,如果数据库非常大,name导出和导入数据可能会需要很长时间。这时,一种更快速的备份和恢复数据的方式就是直接复制mysql的data文件夹。 什么是mysql的…...

ARP协议定义及工作原理

ARP的定义 地址解析协议(Address Resolution Protocol,ARP):ARP协议可以将IPv4地址(一种逻辑地址)转换为各种网络所需的硬件地址(一种物理地址)。换句话说,所谓的地址解析的目标就是发现逻辑地址与物理地址的映射关系。 ARP仅用于IPv4协议&a…...

express实现用户登录和注册接口

目录 1 创建数据库2 连接数据库3 集成ORM库4 创建业务逻辑5 创建路由7 测试接口总结 我们在编写后端接口的时候操作数据库是一种常见的功能需求,express本身并不提供直接操作数据库的能力,需要借助第三方库来操作数据库,本篇讲解一下软件开发…...

数字化转型,效率增长才是王道

在当今商业世界,数字化已经成为推动企业增长的强大引擎。然而,值得注意的是,数字化并非只是简单地追求规模扩张,更重要的是实现降本增效。没有效率的增长,就像是在加速自我毁灭。在数字化转型的道路上,企业…...

RHCE-2-chrony服务器

简介 重要性 由于IT系统中,准确的计时非常重要,有很多种原因需要准确计时: 在网络传输中,数据包括和日志需要准确的时间戳 各种应用程序中,如订单信息,交易信息等 都需要准确的时间戳 Linux的两个时钟 硬…...

音频RK809

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、目的二、知识准备2.1Audio框架2.1.1 DAI2.1.2 CODEC2.1.3 machine三、原理图3.1 整体原理图3.2 喇叭部分3.3 麦克风部分四、设备树4.1 sound 部分4.2 codec 部分五、驱动讲...

解决 linux 服务器 java 命令不生效问题

在Linux系统中,当你安装Java并设置了JAVA_HOME环境变量后,你可能需要使用source /etc/profile命令来使Java命令生效。这是因为/etc/profile是一个系统级的配置文件,它包含了系统的全局环境变量设置。 但是需要注意的是,source /e…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

Map相关知识

数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

《信号与系统》第 6 章 信号与系统的时域和频域特性

目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...