笔记
文章平均质量分 55
笔记
whale-52赫兹
一个搬砖的人
展开
-
使用java构建树形结构的多种实现工具类
属性节点和工具类构成,个人比较喜欢用的是最后一个celerityBuild,n*2即可快速构建出树。比较通用的一套树形结构构建工具类。原创 2023-11-20 15:33:00 · 609 阅读 · 0 评论 -
spring boot中使用jackson,自定义实现序列化和反序列化
这里很简单,就俩序列化:针对某一数据类型的序列化实现接口JsonSerializer反序列化:针对某一数据类型的反序列化实现接口JsonDeserializer这里用时间类型举例吧,换其他类型也同理/**// 这里是自己的系列化逻辑 String format = DateTimeFormatter . ofPattern("序列化三侃时间:yyyy-MM-dd HH:mm:ss") . format(date);原创 2023-02-23 18:22:10 · 3016 阅读 · 0 评论 -
图解TreeMap是如何使用红黑树的
红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求后面继续分析一下TreeMap中是如何运用红黑树的表面看起来很简单:存了一个5:5的键值对,后面分析看一下具体做了什么。第一步初始化:只构造了一个TreeMap对象,comparator 赋值为空。这时候整棵树没有任何元素。第二步存入5:5这里顺便看一下Entry中包含什么当前节点的键值信息,还有左右子节点以及父节点。默认颜色为黑色,所以刚才的根节点不需要染色操作原创 2022-12-07 16:37:39 · 552 阅读 · 0 评论 -
nacos注册中添加自定义元数据,可动态
nacos客户端版本:1.4nacos注册时可以自定义一些元数据来标记当前节点的特有信息。最近做了一个灰度的功能便是基于这个东西做的,顺便找了几个配置方式。原创 2022-11-16 11:07:57 · 7348 阅读 · 0 评论 -
记录一次nacos集群模式下注册失败
注册地址使用nacos.xxx.com,服务启动时控制台出现异常:Caused by: com.alibaba.nacos.api.exception.NacosException: failed to req API:/api//nacos/v1/ns/instance after all servers([nacos.xxx.com]) tried: java.net.SocketTimeoutException: connect timed out原创 2022-09-14 18:31:19 · 940 阅读 · 0 评论 -
java基于内存实现的令牌桶限流工具类
由于redis实现令牌桶需要每次都访问redis,所以做了一个内存的工具类,实现逻辑和redis的一样。首先考虑缓存实现,需要满足每个令牌桶不同的过期时间。hutool工具包中有相关的工具,所以不用造轮子了。缺点:1 没有任何持久化,重启后信息全部丢失。2 多节点流量不可控或者说不精准。优点:1 不依赖其他中间件。2 数据都存放在本机内存,没有外部交互性能更高。基于内存实现的限流工具类,适用于可以容忍单节点限流的场景。...原创 2022-08-09 17:50:21 · 1607 阅读 · 0 评论 -
使用spring中的Binder绑定参数
只有最基本的功能肯定是无法在正常开发中使用的,不过强大的spring提供了非常丰富的功能。输出文本:除了这种使用开源工具自带的还可以自己实现转换的逻辑。主要包含俩种接口类GenericConverter:实际进行判断和执行转换的类ConversionService:提供类型转换完整服务,包括判断是否可以转换和实际进行转换的入口。可以理解为封装了GenericConverter的功能 GenericConversionService...原创 2022-07-14 09:36:09 · 2317 阅读 · 0 评论 -
dubbo获取本服务提供的生产者,消费者等信息
需求场景描述:dubbo服务启动时需要将当前应用提供的dubbo服务上报出去。所以需要一个获取所有当前服务中所有dubbo服务的功能。所以现在大概两步走就行了翻看dubbo代码时发现一个类,包含所需要的信息。ServiceRepository 这个类主要的三个属性2.2 发送上报上报功能没什么可写的。这里就记录一下的运行时间点,我这用的是监听DubboBootstrapStartedEvent事件,在监听实践中使用2.1的代码获取所有信息。...原创 2022-07-08 10:29:50 · 2104 阅读 · 0 评论 -
自定义注解中使用SpEL表达式,动态获取方法参数或执行方法
获取变量的功能,比较常见的用法是spring中缓存注解的功能。可以动态获取方法中参数的值。如下:1.2 执行方法这个例子用过spring security的或者类似的授权框架的可能比较熟悉。如下这里其实就是通过表达式去执行某个类的hasRole方法,参数为’ROLE_ADMIN’,然后获得返回值再进行后续操作。表达式不仅支持获取属性和执行方法,还支持各种运算符操作,能查到很多其他大神写的。这里就不写了写demo之前先简单介绍一下执行表达式时比较重要的几个类最后获得的value就是传入的值,这个dem原创 2022-06-23 14:34:13 · 14416 阅读 · 1 评论 -
java中awt的常用操作
java中awt的常用使用 1 文本操作 1.1 渲染文本 1.2 获取文本渲染之后的长度 2 图片操作 2.1 渲染图片 2.2 图片处理为圆角原创 2022-06-02 16:58:00 · 329 阅读 · 0 评论 -
发红包和抢红包的后端时序图(预先分配红包)
发红包功能和抢红包功能,代码写的比较烂。就不贴了,就简单画个时序图记录一下思路吧。1.数据模型:1.1红包记录:字段备注红包id字面意思红包总额字面意思红包个数记录分成了几个剩余红包个数剩余数初始=红包个数1.2 红包明细记录:字段备注红包明细id字面意思红包id这条明细归属的红包id金额记录这个明细是多少钱归属人获得红包的人,初始是空2.时序图2.1发红包#mermaid-svg-nwR.原创 2022-05-17 16:15:53 · 545 阅读 · 0 评论 -
参考发红包的数值均匀分配算法+可设置最小值
最近有个需求是需要发红包的,正常如果是正常是最小值0.01,那么直接参考网上贴出来的微信红包算法即可。但是这个需求需要设置一个最小值。 private BigDecimal ONE_HUNDRED = BigDecimal.valueOf(100); private BigDecimal DEF_MIN = BigDecimal.valueOf(0.01); /** * 微信-均匀分配,最小值为0.01 *@Author dong *@Date .原创 2022-05-11 19:11:11 · 426 阅读 · 0 评论