自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 BeanUtils.copyProperties() 详解

BeanUtils.copyProperties方法简单来说就是将两个字段相同的对象进行属性值的复制。如果 两个对象之间存在名称不相同的属性,则 BeanUtils 不对这些属性进行处理,需要程序手动处理。这两个类在不同的包下面,而这两个类的copyProperties()方法里面传递的参数赋值是相反的。二、org.apache.commons.beanutils.BeanUtils。一、 org.springframework.beans.BeanUtils。

2023-08-09 16:17:48 438

原创 Redis的一个大Key

redis 的大 key 不是指存储在 redis 中的某个 key 的大小超过一定的阈值,而是该 key 所对应的 value 过大对于 string 类型来说,一般情况下超过 10KB 则认为是大 key;对于set、zset、hash 等类型来说,一般数据超过5000条即认为是大 key。

2023-07-10 09:12:49 644

原创 Java实现数据脱敏

数据脱敏指的是某些敏感的信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。敏感数据包括,姓名、身份证号、手机号、银行卡号等信息,防止这些敏感数据在不安全的情况下使用,所以就要使用数据脱敏的技术。使用数据脱敏会在敏感数据被查询时,使用***进行遮挡,从而保护敏感数据的安全。配置文件,那个深度脱敏默认是关闭的,感兴趣的朋友可以去搜索相关资料。创建一个用户的实体类,设置一些敏感数据的属性。# 是否启用深度脱敏,为了性能考虑,默认关闭。# 是否启用脱敏,全局生效,默认开启的。添加数据脱敏用的到的依赖。

2023-06-27 18:35:05 1148 2

原创 VUE2.0集成 Markdown 编辑器

Markdown是一种标记语言,相较于word文档更加清晰方便,适合进行笔记等。将Markdown集成进入自己项目之后,就可以在项目中使用的Markdown编辑器了。这是一款基于Vue的markdown编辑器。既可以用来编辑Markdown语法,又可以用来解析。效果图,mavonEditor实现了Markdown集成。mavon-editor: 2.10.4版本。第三步: 写一个按钮来跳入富文本的一个页面。1、安装mavonEditor包。Markdown编辑器的使用。第二步: 还是导入配置。

2023-06-24 16:12:39 2848 1

原创 什么是HikariCP?HikariCP介绍(包含配置示例)

自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描,相对与ArrayList极大地提升了性能,而其中的区别是,ArrayList在每次执行get(Index)方法时,都需要对List的范围进行检查,而FastStatementList不需要,在能确保范围的合法性的情况下,可以省去范围检查的开销。数据库连接复用:重复使用现有的数据库长连接,可以避免连接频繁建立、关闭的开销。

2023-06-19 13:59:01 3246

原创 arthas

将下载后的压缩包放到英文路径下的文件下,并新创建一个文件夹把压缩包里面的东西拿过来并把压缩包删掉。输入命令:java -jar arthas-boot.jar,查看所有已经启动的项目。进入项目对你要测试的接口进行右击选择Arthas Command中的Watch。启动idea中的项目,并在修改选择中关闭VM选项。对项目中你要测试的接口进行postman测试。测试成功后回到小黑框就会出现你执行后的效果。点击进入文件夹中,在路径处输入cmd进入。找到你想测试的项目,并输入最前面的编号。

2023-06-15 11:43:03 419

原创 EnableCaching

Key:如果写id,redis里命名空间后缀也就是id。如果不写key,命名空间后默认是所有值。2.写一个存储redis的配置类。3. 使用@Cacheble。再次查询时就不会走数据库了.运用在删除上缓存失效。

2023-06-15 11:39:45 58

原创 接口合并[ 合并 ]

【代码】接口合并。

2023-06-15 11:34:49 106

原创 链路追踪( Skyworking )

skywalking 是一个优秀的国产开源APM组件,是一个对 Java 分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统。2015年由个人吴晟开源 , 2017年加入Apache孵化器。短短两年就被Apache收入麾下,实力可见一斑。skywalking 支持 SpringBoot、SpringCloud、dubbo 集成,代码无侵入,通信方式采用 GRPC,性能较好,实现方式是 Java 探针,支持告警,支持JVM监控,支持全局调用统计等等,功能较完善。

2023-06-06 18:56:21 22092

原创 聊聊接口性能优化的11个小技巧

对于从事的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。该问题说简单也简单,说复杂也复杂。有时候,只需加个索引就能解决问题。有时候,需要做代码重构。有时候,需要增加缓存。有时候,需要引入一些中间件,比如。有时候,需要需要分库分表。有时候,需要拆分服务。等等……导致接口性能问题的原因千奇百怪,不同的项目不同的接口,原因可能也不一样。本文我总结了一些行之有效的,优化接口性能的办法,给有需要的朋友一个参考。

2023-06-05 13:07:14 713

原创 BigDecimal 怎么使用

以上是使用BigDecimal的基本步骤。BigDecimal是Java中用于高精度计算的类,可以处理比double和float更大的数值,并提供了更多的算术运算方法。1. 导入BigDecimal类:在Java代码中,需要在开头使用import语句导入BigDecimal类。3. 进行算术运算:可以使用BigDecimal提供的方法进行算术运算,如加、减、乘、除、取余等。4. 比较大小:可以使用compareTo()方法比较两个BigDecimal对象的大小。

2023-06-05 12:34:29 301

转载 Mybatis-Plus的使用

如果我们对IDC划分有需求,还可以将10-bit分5-bit给IDC,分5-bit给工作机器。特点:乐观锁是一种并发类型的锁,其本身不对数据进行加锁而是通过业务实现锁的功能,不对数据进行加锁就意味着允许多个请求同时访问数据,同时也省掉了对数据加锁和解锁的过程,这种方式因为节省了悲观锁加锁的操作,所以可以一定程度的的提高操作的性能,不过在并发非常高的情况下,会导致大量的请求冲突,冲突导致大部分操作无功而返而浪费资源,所以在高并发的场景下,乐观锁的性能却反而不如悲观锁。// 起始版本 3.3.0(推荐使用)

2023-06-05 12:32:02 4552

原创 SpringBoot项目邮箱发送

邮件发送( 依赖 )

2023-06-04 15:45:45 51

原创 雪花算法生成ID , 在前端精度丢失的问题?

例子: 提供一个ID生成策略@Component@Override// 填充自己的Id生成器,IdGenerator是一个缩了位的雪花ID生成算法,生成的位数是16位,不会导致JS精度丢失​​/**​*/​​​​​​// max 31​/**​*/​​​​/**​​- @return*/​} else {​​| sequence;

2023-06-04 15:41:30 652

原创 MQ的相关的使用

先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。天生为金融互联网领域而生,对于可靠性要求很高的场景,尤其是电商里面的订单扣款,以及业务削峰,在大量交易涌入时,后端可能无法及时处理的情况。

2023-06-01 16:36:10 1044

原创 java8新特性

1、速度快;2、代码少、简介(新增特性:lamdba表达式);3、强大的Stream API;4、使用并行流和串行流;5、最大化较少空指针异常Optional;其中最为核心的是Lambda表达式和Stream APILambda是一个匿名函数,我们可以将Lambda表达式理解为一段可以传递的代码(将代码像数据一样传递)。使用它可以写出简洁、灵活的代码。作为一种更紧凑的代码风格,使java语言表达能力得到提升。

2023-03-26 16:29:44 561

原创 Stream流

这个流可以想像成是一个工厂的流水线,一步一步的把一件商品给做好,就比如下图一样。注意点1: 中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用;利用Stream流中的API( Api就是各种各样的方法 )进行各种操作。注意点2: 修改Stream流中的数据,不会影响原来集合或者数组中的数据。统计 打印 终结方法 方法调用完毕之后,不能调用其他的方法。过滤 转换 是中间方法 方法调用完毕之后,还可以调用其他方法。stream流其实和上面流水线的思想是一样的,如下图。

2023-03-26 10:50:40 66

原创 不可变集合

list: 直接用Set: 元素不能重复Map: 元素不能重复,键值对数量最多是10个超过10个用ofEntries的方法。

2023-03-25 19:21:15 69

原创 List集合

这篇文章主要是介绍List集合的相关内容。

2023-03-25 09:15:44 49

原创 JAVA容器

前言这篇文章主要是介绍java容器的一些基本信息什么是java容器?在Java当中,有一个类专门用来存放其它类的对象,这个类就叫做容器,它就是将若干性质相同或相近的类对象组合在一起而形成的一个整体 。为什么引入java容器?我们知道,如果定义一个int数组,需要一开始就要制定它的大小。在一些情况下,我们根本不知道它的长度是多少,开辟很大的长度会导致空间浪费。此外,数组还有很多缺点,例如数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便,同时效率不高。获取数据中实际元素的

2023-03-25 08:47:31 43

原创 springcloud(nacos)集成Kafka

Autowired/*** kafka发送手机短信的方法*/log.info("功能名称:发生验证码的方法,请求路径:[{}],请求方法:[{}],请求参数:[{}]",request.getRequestURI()// 获取短信验证码// 存入redis// 异步发生kaklog.info("功能名称:发生验证码的方法,请求路径:[{}],请求方法:[{}],响应参数:[{}]",request.getRequestURI()

2023-03-24 11:56:49 3432 1

原创 若依框架修改(一)

效果如下:

2023-03-23 11:17:30 3339

原创 KafKa消息中间件

一、可靠性:分布式结构存储数据,构建多台kafkaServer集群分布式存储:往kafka中生产数据时,必然这个数据被分布式存放了。分区:每一个主题Topic都可以有多个分区当生产者往主题中生产数据时,会写入不同的分区每个分区存储在不同的机器上每一条数据会根据分区规则写入对应的分区二、可扩展性:横向扩展,机器不够加机器三、耐用性:Kafka中的数据分区存储在每台机器的磁盘上的,数据存储在Kafka中不易丢失。为什么我们以前看到的读写磁盘都比较慢?磁盘中分散存放的,牺牲大量的寻址时间。

2023-03-22 21:21:19 44

原创 若依框架的各大依赖

spring-cloud-dependencies是一个依赖管理器的pom文件 ,从而统一各种jar的版本号,避免了版本不一致而出现的问题。在 pom 文件中,加入一个新的依赖,往往不需要引入相应的版本号(如下代码块所示),就可以正常引入依赖,这其实是因为我们依赖了 spring-boot-starter-parent 模块的缘故。spring-cloud-dependencies和spring-boot-starter-parent他们两作用是相同的,都是一个依赖管理器的pom文件。

2023-03-21 21:17:36 1870

转载 沙箱安全机制

沙箱是一个限制程序运行的环境(沙箱主要限制系统资源的访问,如cpu,内存等等。不同级别的沙箱对这些资源的访问限制也不一样)就是将java代码限定在虚拟机(jvm) 特定的运行范围中,并且严格限制代码对本地系统资源的访问,通过这样的措施来保证对代码的有效隔离,防止对系统造成破坏。

2023-03-18 11:13:37 715

原创 JAVA的事务

要先知道什么是java中的事务?事务: 一般是指要做的或所做的事情.专业术语是这样说的: 就是代码逻辑上的一组操作,这些操作要么全部成功,要么全部失败!举一个现实生活当中的例子:1张三账上有2000元,李四账号也有2000元。张三要向李四转账1000元,正常来说应该是张三账上-1000元,李四账上+1000元。最后张三账上还剩1000元,李四账上3000元。这样就完成了一个转账的操作.2.但这组操作不应该出现的情况就是:张三转了1000元之后断电了,或者出现其他的特殊情况。

2023-03-15 14:53:09 1831

原创 Docker私有仓库

打开浏览器输入地址http://自己虚拟机的端口号:5000/v2/_catalog看到如下页面。修改daemon.json。

2023-03-12 09:14:41 46

原创 使用Jmeter进行性能测试的基本操作方法

Status状态栏里面全都是绿色的小盾牌,说明执行没有问题,表格里面可以看到各种参数如起始时间,线程名,标签,延迟等等。接下来我们双击Jmeter.bat就可以打开Jmeter软件啦,打开的时候会先跳出一个黑色命令行框,不用管它,直接最小化就可以,不要关闭,因为关了之后Jmeter也就一并关掉了。名称是可以自由更改的我就不提啦,我们可以在HTTP请求下的【路径】栏里,填写我们想要测试的URL,我就用搜狗主页。然后就可以在表格监听界面看到执行结果,在右上角能够看到我们刚刚的任务的总执行时间。

2023-03-11 08:32:06 441

原创 Mq的相关概念

先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。天生为金融互联网领域而生,对于可靠性要求很高的场景,尤其是电商里面的订单扣款,以及业务削峰,在大量交易涌入时,后端可能无法及时处理的情况。

2023-03-11 08:25:44 2291

原创 Docker安装RabbitMq

用户名:guest 密码:guest。# 创建rabbitmq文件夹。# 打开rabbitmq文件夹。# 打开docker目录。

2023-03-11 08:18:05 61

原创 Docker安装MYSQL

新模式或表时将使用的默认字符集。# 将 SQL 模式设置为严格。# 创建数据挂在目录。# 创建配置文件目录。# 打开config。# 设置大小写不敏感。# myisam设置。# innodb设置。

2023-03-11 08:16:41 44

原创 Docker安装Redis

创建 redis的config和redis的data。# 在其目录下创建 docker/redis。# 上传配置文件到 config目录下面。# 查看docker当中运行的redis。# 进入 docker/redis目录。docker配置redis。# 脚本设置可执行权限。一键重置redis脚本。# 使用rz上传文件。

2023-03-11 08:14:24 71

原创 ES基本操作

PUT 索引名/_doc/_mapping?#DELETE /索引/文档类型/文档id。"query": "张三"DELETE 索引名。

2023-03-11 07:32:55 79

转载 来一份常见 JVM 面试题+“答案”

通过对GC Roots的分析,我发现了一个非常大的HashMap对象,这个原本是有位同学做缓存用的,但是一个无界缓存,造成了堆内存占用一直上升。sys 指的是进程在核心态(Kernel Mode)花费的CPU时间量,指的是内核中的系统调用所花费的时间,只统计本进程所使用的时间。它的功能有点类似反射,但它是使用方法句柄实现的,执行效率更高。为了减少方法调用的开销,可以把一些短小的方法,比如getter/setter,纳入到目标方法的调用范围之内,就少了一次方法调用,速度就能得到提升,这就是方法内联的概念。

2023-03-10 08:09:43 153

原创 命令行操作mongodb

NoSQL简介NoSQL(NoSQL = Not Only SQL),意即反SQL运动,指的是非关系型的数据库,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入为什幺使用NoSQL :1、对数据库高并发读写。2、对海量数据的高效率存储和访问。3、对数据库的高可扩展性和高可用性。弱点:1、数据库事务一致性需求2、数据库的写实时性和读实时性需求。

2023-03-09 13:59:57 321

原创 docker安装MongoDB

创建 mongodb 文件夹。# 打开 mongodb 文件夹。

2023-03-09 13:58:50 103

原创 portainer 安装

进入目录# 创建文件夹docker.io/portainer/portainer:latest# 编写脚本# 赋值权限# 执行脚本。

2023-03-09 13:56:30 170

原创 liunx基础安装命令

root@localhost ~]# systemctl disable firewalld按照顺序输入# 编写# 刷新#如果要长期生效的话,执行如下:安装rz。

2023-03-09 13:56:02 28

原创 Liunx安装Docker

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/# 由于 Docker 是基于 C 和 C++ 开发的,所以需要先安装相关环境。如果之前安装过docker先卸载之前的docker,如果没安装过请忽略这一步。# 这里的 docker-ce 社区版,docker-ee 企业版。# 设置docker容器开机自启。# 查看docker版本信息。# docker的工作空间。# 查看docker状态。# 启动docker。# 停止docker。

2023-03-09 13:55:37 17

原创 VMware安装liunx

选择I/O控制器类型。

2023-03-09 13:55:18 22

VUE2.0集成 Markdown 编辑器

速度

2023-06-24

VUE2.0集成 Markdown 编辑器

速度

2023-06-24

VUE2.0集成 Markdown 编辑器

速度

2023-06-24

VUE2.0集成 Markdown 编辑器

速度

2023-06-24

雪花算法生成ID , 在前端精度丢失的问题?

雪花算法生成ID , 在前端精度丢失的问题?

2023-06-04

白雪辉.eddx

白雪辉.eddx

2022-12-01

空空如也

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

TA关注的人

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