自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 收藏
  • 关注

原创 Java内存模型

冲区、寄存器以及其他的硬件和。的内存模型,它确保在不同的。程都有一个私有的本地。一个抽象概念,并不真。

2024-06-20 17:49:22 79

原创 spring源码分析之单例模式

spring获取一级缓存时用到单例模式。

2024-06-19 17:15:54 94

原创 springsecurity入门登录授权

①我们需要自定义登陆接口,也就是在controller目录新建LoginController类,在controller方法里面去调用service接口,在service接口实现AuthenticationManager去进行用户的认证,注意,我们定义的controller方法要让SpringSecurity对这个接口放行(如果不放行的话,会被SpringSecurity拦截),让用户访问这个接口的时候不用登录也能访问。在LoginServiceImpl类添加如下。配置类SecurityConfig。

2024-05-17 15:33:54 321

原创 springsecurity项目快速搭建

自定义security的搭建。

2024-05-15 16:33:28 274

原创 springsecurity原理

在 '快速入门' 中,我们在Boot项目里面引入了Security依赖,实现了当我们访问某个业务接口时,会被Security的login接口拦截,但是如果我们不想使用Security默认的登录页面,那么怎么办呢,还有,springsecurity的校验,我们希望是根据数据库来做校验,那么怎么实现呢。我们需要实现如下【登录-未实现】①、自定义登录接口。用于调用ProviderManager的方法进行认证 如果认证通过生成jwt,然后把用户信息存入redis中。

2024-05-15 14:51:00 317

原创 springSecurity快速入门

springsecurity是安全框架,准确来说是安全管理框架。相比与另外一个安全框架Shiro,springsecurity提供了更丰富的功能,社区资源也比Shiro丰富springsecurity框架用于Web应用的需要进行认证和授权认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户授权:经过认证后判断当前用户是否有权限进行某个操作。认证和授权也是SpringSecurity作为安全框架的核心功能认证和授权也是SpringSecurity作为安全框架的核心功能。

2024-05-15 14:33:42 369

原创 SpringBoot 集成 RocketMQ

在现代的微服务架构中,消息队列已经成为一种常见的异步处理模式,它能解决服务间的同步调用、耦合度高、流量高峰等问题。RocketMQ是阿里巴巴开源的一款消息中间件,性能优秀,功能齐全,被广泛应用在各种业务场景。

2023-11-20 00:07:30 1454

原创 docker安装RocketMQ

RocketMQ主要由Producer、Broker、Consumer三部分组成,其中Producer负责生产消息,Consumer负责消费消息,Broker负责存储消息。Broker在实际部署过程中对应一台服务器,每个Broker可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的Broker。

2023-11-12 23:18:28 920

原创 深入了解 RocketMQ:高性能消息中间件

RocketMQ主要由Producer、Broker、Consumer三部分组成,其中Producer负责生产消息,Consumer负责消费消息,Broker负责存储消息。Broker在实际部署过程中对应一台服务器,每个Broker可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的Broker。MessageQueue用于存储消息的物理地址,每个Topic中的消息地址存储于多个MessageQueue中。ConsumerGroup由多个Consumer实例构成。

2023-11-01 00:04:39 1003

原创 Linux用户和权限

什么是root用户(超级管理员)无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。使用chown命令,可以修改文件、文件夹的所属用户和用户组

2023-10-18 17:53:19 259

原创 常用消息中间件

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。

2023-10-12 14:49:10 271

原创 RabbitMQ常见的交换机类型

配置文件消息中的路由键(routing key)如果和 Binding中的binding key 一致,交换器就将消息发到对应的队列中。路由键与队列名完全匹配,如果一个队列绑定到交换机要求路由键为“dog”,则只转发routing key 标记为“dog”的消息,不会转发 “dog.puppy”,也不会转发“dog.guard” 等等。它是。接着我们先使用下(直连型交换机),创建然后写个简单的接口进行消息推送。

2023-10-11 00:12:07 915

原创 深入了解 RabbitMQ:高性能消息中间件

消息队列消息指的是两个应用间传递的数据。数据的类型有很多种形式,可能只包含文本字符串,也可能包含嵌入对象。“消息队列(Message Queue)”是在消息的传输过程中保存消息的容器。在消息队列中,通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列,谁从消息队列中取出数据处理,他不管。消费者只负责从消息队列中取出数据处理,他不管这是谁发送的数据。二、为什么使用消息队列主要有三个作用异步处理场景说明: 用户注册后,需要发注册邮件和注册短信,传统的做法串行的应用解耦。

2023-10-05 21:56:16 997

原创 minio分布式文件存储

基本介绍什么是MinIOMinIO 是一款基于 Go 语言的高性能、可扩展、云原生支持、操作简单、开源的分布式对象存储产品。基于 Apache License v2.0 开源协议,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口。可以很简单的和其他应用结合使用,例如 NodeJS、Redis、MySQL 等。MinIO特点。

2023-10-04 20:38:05 3411 3

原创 阿里云OSS图片存储

阿里云对象存储 OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供最高可达 99.995 % 的服务可用性。多种存储类型供选择,全面优化存储成本。这样可以节省很多资源,不需要把文件发送到controller层,直接发送给OSS就可以。将配置数据放在application.yml中。项目中OSS的使用可以改进为。上传文件demo (微改)对应的java代码(简写)

2023-10-02 23:55:07 278

原创 nginx 反向代理 负载均衡 动静分离

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,在微服务架构中,Nginx作为客户端请求的第一层中间件,通常将请求转发代理给网关。一般Nginx运用的主要场景有反向代理、负载均衡、动静分离等,在微服务架构如下:其特点是占用内存少,并发能力强,运行还很文档,几乎可以做到7x24h不间断运行,即使运行数个月也不需要重启。而且,还能在服务不间断的情况下进行软件版本的升级。Nginx代码完全用C语言编写,官方数据测试表明能够支持高达50000个并发连接数的响应。

2023-09-26 11:58:11 685

原创 全局异常处理+JSR303验证

我们在日常开发中,避不开的就是参数校验,有人说前端不是会在表单中进行校验的吗?在后端中,我们可以直接不管前端怎么样判断过滤,我们后端都需要进行再次判断,为了安全。因为前端很容易拜托,当测试使用PostMan来测试,如果后端没有校验,不就乱了吗?肯定会有很多异常的。今天小编和大家一起学习一下JSR303专门用于参数校验的,算是一个工具吧!JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。

2023-09-18 16:24:12 203

原创 正则表达式

可以设置返回 0-9 a-z A-Z。表示前面的字符出现0次或者一次。*表示前面的字符出现任意次。是定义匹配的字符的范围。

2023-04-03 11:50:25 276

原创 分布式session问题

session 共享问题

2023-02-18 21:38:16 103

原创 git命令

git命令入门

2022-12-27 21:08:12 1386

原创 linux 虚拟机网络配置

NAT模式 (network address transfer) 虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。

2022-09-10 14:32:39 934

原创 String Table

字符串常量池中不会存储相同内容的字符串String 的String Pool 是一个固定大小的Hashtable,默认值大小长度是1009。如果放进String Pool 的String非常多,就会造成Hash冲突严重,从而导致链表会很长,而链表长了直接会造成的影响是当调用String.intern时性能会大幅下降。......

2022-08-10 17:50:12 396

原创 ElasticSearch 基础概念

ElasticSearch 基础概念

2022-08-10 17:47:28 436

原创 网关解决跨域问题

什么是跨域问题:跨域: 指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。同源策略: 是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;跨源资源共享(CORS) - HTTP | MDN解决跨域 方法一使用nginx 部署为同一域解决跨域方法二 配置当次请求允许跨域...

2022-05-09 15:45:44 1734

原创 Java8新特性

1.概述1.1为什么学? ●能够看懂公司里的代码 ●大数量下处理集合效率高(并行流) ●代码可读性高 ●消灭嵌套地狱 例如: java8之前代码: //查询未成年作家的评分在70以上的书籍由于洋流影响所以作家和书籍可能出现重复,需要进行去重 List<Book> bookList = new ArrayList<>(); Set<Book> uniqueBookValues = new Hashset&lt...

2022-04-29 01:16:52 679

原创 JWT安全认证原理,执行流程,结合Springboot项目

什么是JWT令牌点击:官网 JSON Web Token (JWT) 是一个开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以 JSON 对象的形式安全传输信息。此信息可以验证和信任,因为它是数字签名的。JWT 可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。JWT能做什么1.授权 这是使用JWT的最常见方案。一旦用户登录,每个后续请求将包括JWT(Token),从而允许用户访问该令牌允许的路由,服务...

2022-03-30 19:36:49 584

转载 并查集(合并)

547. 省份数量难度中等有n个城市,其中一些彼此相连,另一些没有相连。如果城市a与城市b直接相连,且城市b与城市c直接相连,那么城市a与城市c间接相连。省份是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个n x n的矩阵isConnected,其中isConnected[i][j] = 1表示第i个城市和第j个城市直接相连,而isConnected[i][j] = 0表示二者不直接相连。返回矩阵中省份的数量。...

2022-03-24 19:28:36 165

转载 二进制枚举

2212. 射箭比赛中的最大得分难度中等18收藏分享切换为英文接收动态反馈Alice 和 Bob 是一场射箭比赛中的对手。比赛规则如下:Alice 先射numArrows支箭,然后 Bob 也射numArrows支箭。 分数按下述规则计算: 箭靶有若干整数计分区域,范围从0到11(含0和11)。 箭靶上每个区域都对应一个得分k(范围是0到11),Alice 和 Bob 分别在得分k区域射中ak和bk支箭。如果ak>= bk,那么 Al...

2022-03-23 11:39:08 105

转载 怎样去理解Linux用户态和内核态

在Linux技术讨论中经常会用户态和内核态术语脱口而出,可你们想过吗?用户态和内核态代表是什么?本片文章,就来谈一谈这个话题。我们先来看一张Linux整体架构图。从图上我们可以看出来通过系统调用将Linux整个体系分为用户态和内核态(或者说内核空间和用户空间)。那内核态到底是什么呢?其实从本质上说就是我们所说的内核,它是一种特殊的软件程序,特殊在哪儿呢?控制计算机的硬件资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。用户态就是提供应用程序运行的空间,为了使应用程

2022-03-08 15:46:51 155

原创 linux安裝Docker (Centos7)

1.官网安装手册Install Docker Engine on CentOS | Docker Documentation2.确实是centos7 及以上版本查看命令: cat /etc/redhat-release3.安装c语言环境yum -y install gccyum -y install gcc++4. 删除旧版本 (看官网)yum remove docker \ docker-client \

2022-02-11 14:25:03 157

原创 滑动窗口问题

76. 最小覆盖子串难度:困难给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。 如果s中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a...

2021-12-28 19:07:07 221

原创 二分查找需要注意点

475. 供暖器难度 中等冬季已经来临。你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。在加热器的加热半径范围内的每个房屋都可以获得供暖。现在,给出位于一条水平线上的房屋houses和供暖器heaters的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。说明:所有供暖器都遵循你的半径标准,加热的半径也一样。示例 1:输入: houses = [1,2,3], heaters = [2]输出: 1解释: 仅在位置2上有一个供暖器。如果我们将加热半...

2021-12-20 19:37:17 109

原创 堆排序(likou 912)

912. 排序数组难度中等给你一个整数数组nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000 -50000 <= nums[i] <= 50000使用堆排序的方式解决这个问题:怎么实现的呢,其实思想就是利用数组表示堆(完全...

2021-11-11 15:17:22 405

原创 双向链表+哈希表(likou146 LRU缓存机制)

146. LRU 缓存机制难度 : 中等运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value)如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当...

2021-11-10 11:46:45 203

原创 单调栈(likou84. 柱状图中最大的矩形、likou85)

84. 柱状图中最大的矩形难度 :困难给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例 1:输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10第一种暴力解法:就是向左右找大于等于自身高的最长宽度,这样求得的一定就最优解,不过时间复杂度太高,题目通过不了 public int largestRectangleAr..

2021-10-26 19:31:41 148

原创 摩尔投票法(likou229、主要元素)

以前面试度小满的时候有个面试官问我一个类似的问题​​​​​面试题 17.10. 主要元素数组中占比超过一半的元素称之为主要元素。给你一个整数数组,找出其中的主要元素。若没有,返回-1。请设计时间复杂度为O(N)、空间复杂度为O(1)的解决方案。示例 1:输入:[1,2,5,9,5,9,5,5,5]输出:5由于题目要求时间复杂度 O(n)O(n) 和空间复杂度 O(1),因此符合要求的解法只有 Boyer-Moore 投票算法。Boyer-Moore 投票...

2021-10-22 16:08:33 139

原创 前缀树(likou208、likou211)

摸鱼:​​​​​​mm​​​​​​​211. 添加与搜索单词 - 数据结构设计难度 :中等请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。实现词典类WordDictionary:WordDictionary()初始化词典对象 void addWord(word)将word添加到数据结构中,之后可以对它进行匹配 bool search(word)如果数据结构中存在字符串与word匹配,则返回true;否则,返回fals...

2021-10-20 19:07:27 138

原创 正则表达式匹配(likou10题)

摸鱼:10. 正则表达式匹配难度 : 困难给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符 '*'匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示例 1:输入:s = "aa" p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。示例 2:输入:s = "aa" p = "a*"输出:true解释:因为 '*' 代表可以匹配...

2021-10-19 19:06:48 290

原创 sql语句中union的用法

union联合的结果集不会有重复值,如果要有重复值,则使用union allunion会自动压缩多个结果集合中重复的结果,使结果不会有重复行,union all 会将所有的结果共全部显示出来,不管是不是重复。union:会对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序。union all:对两个结果集进行并集操作,包括重复行,不会对结果进行排序。1.sql Union用法select 字段1 from 表名1 Union select 字段2 from 表名2.....

2021-08-22 22:35:56 115690 2

转载 SQL语句中 join用法

left join 中 on 后面加条件 where 和 and 的区别1、 on条件是在生成临时表时使用的条件,它不管and中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左表的记录)了,条件不为真的就全部过滤掉。现在有表a和表b...

2021-06-14 23:11:55 344

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除