- 博客(23)
- 收藏
- 关注
原创 @RequiredArgsConstructor是按类型注入还是按名称注入
@RequiredArgsConstructor 是 Lombok 库提供的一个注解,它用于自动生成构造函数,这个构造函数会包含类中所有被标记为 final 的字段以及带有 @NonNull 注解的字段。这个注解的目的是简化代码,避免重复编写构造函数。
2024-09-14 06:26:29 60
原创 @JSONField(name=xx)、@JsonProperty(value=xx)和@SerializedName的使用
@JSONField(name=xx)作用作用在get方法上,在序列化的时候(把对象转换为JSON串的时候),可以重新命名成指定的JSON数据的key名称;作用在set方法上,在反序列化的时候(解析JSON转为对象的时候),可以把数据绑定到对应的JAVA实体类属性上;作用在字段上,会在序列化和反序列的时候,把数据都绑定到对应的字段上。注意如果是使用JSON工具,上面的作用只能使用下面对应的方法;get:com.alibaba.fastjson.JSON#toJSONString(jav
2024-09-13 08:32:59 367
原创 Kafka如何实现失败重试?
生产者:通过配置重试参数和异步发送回调来实现失败重试。消费者:通过手动提交偏移量和使用Spring Kafka的错误处理机制来实现失败重试。幂等性:确保生产者和消费者处理消息的逻辑是幂等的,以避免重复处理消息导致的问题。死信队列:对于无法处理的消息,发送到死信队列进行监控和分析。通过上述方法,可以优雅地实现Kafka中消息发送和消费的失败重试,提高系统的健壮性和可靠性。
2024-09-10 06:31:10 409
原创 多条Kafka消息的key重复会怎样?
在org.apache.kafka.clients.producer.internals.DefaultPartitioner#partition方法中的注释【keyBytes serialized key to partition on (or null if no key)】可以看到,会通过key进行hash然后确定分区。在Kafka中,如果消息的key为null,那么Kafka会使用一个内置的分区策略来决定将这条消息发送到哪个分区。综上所述,是否发送具有相同key的消息取决于你的具体需求。
2024-09-08 17:44:44 766
原创 MyBatis的@MapKey的使用
在MyBatis中,@MapKey注解用于指定返回结果集是一个Map的集合时,映射结果集中的某列或字段作为Map的键(key)。
2024-08-29 08:43:08 147
原创 AQS算法简介
定义同步状态:确定同步器的同步状态表示什么。实现模板方法:根据同步器的类型(独占或共享),实现tryAcquiretryRelease和等方法。管理同步队列:使用AQS提供的和release方法来管理等待队列。实现查询方法:如有必要,实现getStatesetState等查询同步状态的方法。构建同步器:创建一个类实现同步器的逻辑,并使用AQS的方法来管理同步状态。
2024-08-23 20:58:53 354
原创 Java集合框架UML图
建议:在IntelliJ IDEA中打开【.uml】格式的源文件,方便修改或显示更详细、更清晰的内容。温馨提示:可找我免费获取【.uml】格式的源文件。
2023-09-04 22:28:14 94
原创 【张建飞:《程序员的底层思维》】看书笔记
本书涵盖程序员应知应会的16种思维能力,共18章,分为三部分。第一部分主要介绍抽象思维、逻辑思维、结构化思维、批判性思维、维度思维、分类思维、分治思维、简单思维,以及成长型思维等解决日常问题的基础思维能力。第二部分结合软件行业的特点,主要介绍解耦思维、契约思维、模型思维、工具化思维、量化思维、数据思维,以及产品思维等专业思维能力。第三部分主要是对上述思维能力的综合运用实践。
2023-08-31 09:40:43 184
原创 根据一个或多个属性对List去重
*** 按某个指定字段去重* @param keyExtractor - 需要去重的字段* @return <T> Predicate<T> - 谓词* @author 付聪*/super T,?
2023-08-20 21:30:10 906
原创 Stream流的使用
相同点用绿色字体标记,不同点用红色字体标记。在IDEA中打开UML文件,然后将排序改为【按字母顺序排序】,这样可以方便看到不同流之间的共同点,对比学习更容易把知识点记得牢固一些。将文件的“.png”删掉即可恢复成源文件Stream.uml.pngStream.drawio.pnghttps://doc.qzxdp.cn/jdk/17/zh/api/java.base/java/util/stream/BaseStream.html串行流stream:串行解决数据,不产生异步线程。并行流parallel
2023-08-13 10:46:36 69
原创 内部类的分类和作用
匿名内部类,就是没有名字的嵌套类。它是局部内部类一种特殊形式,也就是没有变量名指向这个类的实例,而且具体的类实现会写在这个类里面。匿名内部类可以使你的代码更加简洁,你可以在定义一个类的同时对其进行实例化。如果某个局部类你只需要用一次,那么你就可以使用匿名内部类@Override// TODO:@Override// TODO:有时候,使用内部类只是为了把一个类隐藏在另外一个类的内部,并不需要内部类有外围类对象的一个引用。为此,可以将内部类声明为static,这样就不会生成那个引用。
2023-07-30 13:39:21 45
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人