自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 接口限流方案

限流是对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。在高并发系统中,出于系统保护角度考虑,通常会对流量进行限流。在分布式系统中,高并发场景下,为了防止系统因突然的流量激增而导致的崩溃,同时保证服务的高可用性和稳定性,限流是最常用的手段。

2024-01-07 18:26:39 1035 1

转载 cas单点登录流程

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的。

2024-01-01 21:39:20 141

原创 MySql的mvcc原理

mvcc全称Multi-VersionConcurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能,同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式去处理读—写请求,做到在发生读—写请求冲突时不用加锁。这个读是指的快照读,而不是当前读,当前读是一种加锁操作,是悲观锁它读取的数据库记录,都是当前最新的版本,会对当前读取的数据进行加锁,防止其他事务修改数据。是悲观锁的一种操作。

2023-12-24 19:27:58 1266

转载 沙箱安全机制

保证程序安全;保护Java原生的JDK代码;Java安全模型的核心就是Java沙箱(Sandbox),什么是沙箱?沙箱是一个限制程序运行的环境。沙箱机制就是将Java代码限定在虚拟机(JVM)特定的运行范围中,并且严格限制代码对本地系统资源访问。通过这样的措施来保证对代码的有限隔离,防止对本地系统造成破坏。沙箱主要限制系统资源访问,那系统资源包括什么?CPU、内存、文件系统、网络。不同级别的沙箱对这些资源访问的限制也可以不一样。所有的Java程序运行都可以指定沙箱,可以定制安全策略。

2023-12-18 07:35:10 169

原创 spring IOC bean为什么默认是单例的

上面的代码中,创建了 10 个线程来获取 ThreadUnSafe 实例,并且循环 1000 次加法,循环 1000 次减法,并把最后的结果打印出来。ThreadLocal 简单的说就是在自己线程内创建一个变量的副本,那么线程操作的自然也就是自己线程内的资源了,也就规避了线程安全问题。然后再次运行 main 方法,发现无论运行多少次,最后的结果都是 0,是线程安全的!不会,无状态 bean 没有实例对象,不能保存数据,是不变类,是线程安全的。从结果可以看出,运行结果都不是 0,这明显的是线程不安全啊!

2023-12-11 06:56:07 440

原创 锁表的原因及解决办法

当我们对数据库进行修改操作的时候,例如添加字段,更新记录等,没有正确评估该表在这一时刻的使用频率,直接进行修改,致使修改操作长时间无法响应,造成锁表,在 mysql 中,如果出现 alter 操作引发Waiting for table metadata lock 类型的锁表,会导致任何操作不可用,后果是灾难性的。当多个事务处理对多个资源同时访问时,若双方已锁定一部分资源但也都需要对方已锁定的资源时,无法在有限的时间内完全获得所需的资源,就会处于无限的等待状态,从而造成其对资源需求的死锁,导致锁表。

2023-12-03 22:23:40 591

原创 group by

当然,这个可能跟不同的数据库,不同的版本有关吧。group by 就是分组统计的意思,一般情况都是配合聚合函数如(count(),sum(),avg(),max(),min())一起使用。当然,平时大家使用的时候,group by还是配合聚合函数使用的,除非一些特殊场景,比如你想去重,当然去重用distinct也是可以的。不会报错,并且返回的是,分组的第一行数据。group by一般用于分组统计,它表达的逻辑就是根据一定的规则,进行分组。这条SQL语句的逻辑很清楚啦,但是它的底层执行流程是怎样的呢?

2023-11-27 09:07:05 1031

原创 MySQL优化-查询优化

查询优化是数据库优化中的一个重要方面,可以提高查询的效率和响应速度,从而提升数据库系统的整体性能。以下是一些查询优化的总结:使用索引:索引可以加速查询的速度,因此需要在经常使用的字段上创建索引,避免在 where 子句中使用不等于避免在 where 子句中使用 or 操作符,避免在 where 子句中使用函数,避免在 where 子句中使用模糊查询。避免全表扫描:尽量避免使用不带条件的 select 语句,因为这会导致数据库执行全表扫描,而且会消耗大量的系统资源。

2023-11-20 08:53:43 425 1

原创 MySQL 报错 incorrect datetime value ‘0000-00-00 00:00:00‘ for column

使用navicat导入数据时报错:MySQL 报错 incorrect datetime value ‘0000-00-00 00:00:00’ for column这是因为当前的MySQL不支持datetime为0的情况。

2023-11-12 21:33:48 1656

原创 nginx负载配置

第一个后端服务器的权重为5,第二个后端服务器的权重为10,第三个后端服务器的权重为1(默认值)。Nginx是一款高性能的Web服务器,同时也是一款高效的反向代理和负载均衡工具。在高并发的情况下,使用Nginx进行负载均衡可以提高网站的并发处理能力,保证网站的稳定性和可用性。在server模块中,我们定义了一个监听80端口的虚拟主机,并且指定了请求的转发规则和负载均衡算法。其中,proxy_pass指定了请求转发的目标地址,$host和$remote_addr是Nginx内置变量,用于设置请求头信息。

2023-11-03 16:15:22 365 1

原创 解决:getReader() has already been called for this request

HttpServletRequest 的 getInputStream() 和 getReader() 都只能读取一次。过滤器是优先于拦截器的, 我们写一个过滤器,在过滤器里面 把流数据 copy一份出来用,也就是复写一哈。因为 我们使用@RequestBody 注解,读取body参数;由于@RequestBody 也是流的形式读取,流读了一次就没有了。,也需要将post请求,body数据拿出来。在拦截器上使用我们复写的流数据就行。

2023-10-29 18:28:06 425 6

原创 为什么spring默认采用单例bean

单例的 bean一个很大的劣势就是他不能做到线程安全!由于所有请求都共享一个 bean实例,所以这个 bean要是有状态的一个 bean的话可能在。出现问题,而原型的 bean则不会有这样问题(但也有例外,比如他被单例 bean依赖),因为给每个请求都新创建实例。如下图是官方文档上的截图,感兴趣的朋友可以进去看看这五种分别有什么不同。今天要介绍的是这五种中的前两种,也是。) 里查看有没有,有的话直接使用这个对象,没有的话才实例化一个新的对象,所以这是个单例的。的时候,在处理多次请求的时候在。

2023-10-22 19:37:20 265

原创 IDEA spring-boot项目启动,无法加载或找到启动类问题解决

3、以上两个方案还不能解决问题,那么可能是你电脑环境出了问题,建议直接重启电脑。问题描述:找不到或无法加载主类 xxx.xxx.xxx.Classname。

2023-10-13 16:41:03 2621

原创 SpringBootTest

可以在运行基于Spring Boot的测试的测试类上指定的注释。在常规的Spring TestContext框架之上提供了以下特性:默认提供SpringBootContextLoader作为ContextLoader,也通过 @ContextConfiguration(loader=…)来自定义若没有显示指定,将查找嵌套的@类,然后返回到SpringBootConfiguration搜索配置允许使用properties属性定义自定义环境属性。允许使用args属性定义应用程序参数。

2023-09-17 16:16:04 192

原创 java的动态代理如何实现

通过JavaCompiler动态编译java源文件,并将相应字节码加载到JVM中,其编译底层通过。Cglib实现动态代理与JdkProxy不同, 是通过构建继承类实现。必须基于接口(interface)实现。

2023-09-10 19:24:07 376

原创 spring的事务隔离级别

事务的传播行为:一个方法在运行了一个开启事务的方法中时,当前方法是使用原来的事务还是开启一个新的事务。事务传播的行为有传播属性指定,Spring定义了7中类传播行为,如下其重点主要讲讲其中的两个:REQUIRED,REQUIRES_NEW。开启事务的注解:开启事务的注解:TransactionlREQUIRED:如果当前方法中有事务在运行,当前这个方法就是在事务内运行,否则就启动一个新事务,并在自己的事务内运行如100块钱,同时购买两本60块钱的书,由于是在当前事务中运行,

2023-09-08 17:23:27 73

原创 对象头的结构

32位虚拟机Mark WordMonitor 是监视器的意思,在Java中被synchronized关键字修饰的对象头且为重量级锁时,会关联一个Monitor对象,Monitor有Owner、EntryList、WaitSet三个字段,分别表示Monitor的持有者线程(获得锁的线程)、阻塞队列、和等待队列。如下图:上图的情况下,MarkWord状态应为heavyweight Locked,ptr_to_heavyweight_monitor占用30位指向Monitor对象。

2023-08-20 21:25:57 197

转载 JDK1.7中HashMap的扩容机制及扩容过程中可能出现的死锁及数据丢失问题

JDK1.7—》哈希表,链表JDK1.8—》哈希表,链表,红黑树— JDK1.8之后,当链表长度超过8使用红黑树。非线程安全0.75的负载因子,扩容必须为原来的两倍。默认大小为16,传入的初始大小必须为2的幂次方的值,如果不为也会变为2的幂次方的值。根据HashCode存储数据。

2023-08-06 20:45:59 1103 1

原创 简单实现jdk1.7HashMap

hashMap和ArrayList其实差不多,arrayList自带索引值,而hashMap是通过算出key的hashCode在通过一系列的位运算得出hash值,hash值^table.length-1得到索引值.其中"zhx"和"wq"索引值相同出项hash冲突,按照头插法放入链表中.(h根据key计算出来的哈希值)就能满足这一点,但是取模运算速度较慢。1.定义一个Map接口,Entry<K,V>对象为Map的元素。为什么hashMap的容量要是2的幂次方。容量为2的次幂时、而。

2023-07-30 19:44:29 146

原创 MySQL 中NULL和空值的区别

1、空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。3、判断NULL 用IS NULL 或者 is not null,SQL 语句函数中可以使用IFNULL()函数来进行处理,判断空字符用 =’‘或者<>’'来进行处理。4、在进行count()统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。

2023-07-23 21:05:32 1365 1

原创 查询每年最新的数据

Mysql

2023-07-17 09:35:26 114

原创 泛型中K TVE? Object等分别代表什么含义。

Object-是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T、E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换。E一Element(在集合中使用,因为集合中存放的是元素)-表示不确定的java类型(无限制通配符类型)T- Type (Java类)N- Number(数值类型)V- Value (值)K - Key(键)

2023-07-07 15:00:25 257 2

原创 ThreadLocal

ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。

2023-07-02 20:41:22 147

原创 word 标签

-w:pPr元素的子元素,跟w:pStyle并列,ind代表缩进情况:有几个属性值:①firstLine(首行缩进)②left(左缩进)③当left和firstLine同时出现时代表下面的元素有两种属性首行和下面其他行都是有属性的④hanging(悬挂)-->--表示一个样式串,指明它包括的文本的显示样式,表示一个特定的文本格式-->--是<w:p>标签内的标签,对Paragraph文本属性进行修饰-->--是<w:r>标签内的标签,对Run文本属性进行修饰-->--嵌入图形的效果-->

2023-06-24 22:08:16 650

原创 file转化为MutiPartyFile

MutipartFile是spring里面定义的接口,它封装了用户在上传图片时所包含的所有信息,但是有些时候我们要将file转换成MutipartFile,才能在保持原有代码逻辑的情况下方便代码的调整,但是file不能直接转换成MutipartFile,现在就要教大家如何将file转换成MutipartFile。用到的包spring-mock。

2023-06-16 17:09:22 322

原创 自定义starter

第一步、创建的spring Initializr模块第二步、删除不需要的内容(启动类、除下面spring-boot-starter的其它依赖,编译插件)如下是完整的pom.xml实际上如果当前starter需要引用其它依赖加入到dependences里面即可,这里只做演示项目项目结构截图第三步、写代码,对外提供一些自己写的类创建,直接复制下面代码,然后选择包进行粘贴,Idea会自动创建对应类代码设置好包名创建直接复制下面代码,选择包进行粘贴即可生成创建配置类(和前面一样复制粘贴即可)

2023-06-04 21:58:30 572

原创 case when用法

Case when 的用法: 一旦满足了某一个WHEN, 则这一条数据就会退出CASE WHEN , 而不再考虑 其他CASE。Case when 的用法-- -搜索Case函数:Case函数(Case搜索函数): 判断表达式的真假,如果为真,返回结果;如果为假,返回else值;如果未定义else值,则返回空值(使用条件确定返回值);from semp;-- -简单Case函数简单Case表达式的作用是: 使用表达式确定返回值:when '1' then '男'

2023-05-28 21:16:50 1025

原创 Mysql字符集

我们在时(Navicat)界面时会遇到这两个选项,字符集和排序规则在MySQL 8.0版本之前,MySQL 5.7 默认的客户端和服务器都用了 latin1 ,而latin1是不包含中文的,所以保存中文会报错 ,在数据库设计的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL 8.0开始,数据库的默认编码将改为 utf8mb4 ,从而避免上述乱码的问题。可以通过一下命令查看当前数据库字符集编码规则# 或者。

2023-05-21 17:14:46 489

原创 适配器模式

<div id="article_content" class="article_content clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css"> <link rel="stylesheet" href="https://csd

2023-05-14 19:59:33 348 1

原创 Mysql目录结构

MySQL 系统自带的数据库,这个数据库保存着MySQL服务器 维护的所有其他数据库的信息 ,比如有 哪些表、哪些视图、哪些触发器、哪些列、哪些索引。MySQL 系统自带的数据库,这个数据库里主要保存MySQL服务器运行过程中的一些状态信息,可以 用来 监控 MySQL 服务的各类性能指标。MySQL 系统自带的核心数据库,它存储了MySQL的用户账户和权限信息,一些存储过程、事件的定 义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。目录:/var/lib/mysql/

2023-05-03 12:12:15 699

原创 责任链设计模式

责任链模式

2023-04-16 10:58:22 283 1

原创 Linux环境开机自启动

自启动

2023-04-09 18:04:58 576 1

原创 Hutool时间处理类

时间处理类

2023-03-26 15:25:13 225

原创 依赖倒置原则

依赖倒置

2023-03-19 07:53:04 240

原创 策略模式实现

策略模式

2023-03-10 14:58:55 116

转载 maven常用命令

maven

2023-03-03 16:44:37 573

原创 数据脱敏总结

数据脱敏

2023-02-24 15:48:25 145

原创 CompletableFuture理解

completableFuture

2023-02-17 15:25:50 77 1

原创 Redis应用场景

redis应用场景及指令

2023-02-10 11:03:57 307

原创 函数式接口

函数式接口

2023-02-03 15:08:54 763

空空如也

空空如也

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

TA关注的人

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