
Java开发
文章平均质量分 96
Java
wasteland~
肩鸿任矩踏歌行,功不唐捐玉汝成。
展开
-
JSR-269 Java中的注解处理器:APT工具的原理应用与自定义注解
如果我们要自定义注解处理器,那么必须继承AbstractProcessor类,因此,理解这个类的方法至关重要。// 注解处理工具的集合,包含了众多工具类:如Filer用来编写新文件,Messager用来打印错误,Elements用来处理Element/***//*** 配置支持的选项,如果不重写这个方法,AbstractProcessor类中默认的实现会读取@SupportedOption注解的配置*/else/**原创 2025-03-06 12:07:21 · 952 阅读 · 0 评论 -
SPI机制:Java SPI原理及源码剖析、应用场景分析与自实现案例实战详解
先定义云计算标准SPI接口,并发布到本地仓库供华为云和阿里云实现:①项目总览:/*** 标准SPI接口/*** 计算方法/*** 加载具体的服务实现*//*** 加载服务(这里简单的直接使用JDK原生的ServiceLoader类)* */if (!// 取第一个} else {/*** CloudComputeService 双重检验锁单例加载* */System.out.println("CloudCompute服务未加载!");原创 2025-02-08 16:22:49 · 1058 阅读 · 0 评论 -
Joda-Time:好用的Java日期处理类Joda-Time使用总结
Joda-Time是一个开源的Java日期和时间库,由Stephen Colebourne创建,旨在替代Java标准库中的java.util.Date 和java.util.Calendar 类。它提供了丰富的API,用于处理日期、时间、时间段、时区等。也是由于Joda-Time良好的设计和风格,很多核心思想被引入到了Java8的java.time包中,Joda-Time的作者Stephen Colebourne和Oracle一起共同参与了这些API的设计和实现。原创 2025-02-06 12:24:36 · 1097 阅读 · 0 评论 -
【MapStruct】深入浅出带你学会从编译调试走进MapStruct源码(二)
本篇文章先普及了一下JSR和JSR269规范的基本概念,以此来引出了MapStruct的作用时机和作用原理,并且简短介绍了java动态编译的过程,然后在介绍了一下如何使用IDEA在编译时开启调试功能,最后调试都源码中结合源码进行了核心类代码的分析。经此,MapStruct相关知识已经基本介绍结束,如果有遗漏或有错误,欢迎评论后续进行修正与补充,而关于MapStruct同样的剖析思路其实也可用于lombok/kotlin等语法糖的原理探究。我是Wasteland,下期文章再见!原创 2025-01-23 20:59:12 · 932 阅读 · 0 评论 -
【MapStruct】高性能对象转换神器MapStruct使用教程从基础到进阶(一)
MapStruct是一个Java注解处理器,它的主要功能是自动生成类型安全、高性能且无依赖的bean映射代码。这个工具基于“约定优于配置”的原则,极大地简化了Java Bean类型之间的映射实现过程。而根据上文的对比发现:MapStruct作用于Java代码编译时期,不会在运行时进行反射操作,其进行对象转换时速度快。在某些情况下,你可能需要自定义方法进行字段映射。= null?@Mapper#uses可以使用多个类。原创 2025-01-23 20:55:06 · 1570 阅读 · 0 评论 -
【Retry机制】一文带你深入学习JAVA中的Retry机制
业务系统之间、接口之间的调用会有一些不稳定的因素存在,比如网络波动导致接口调用网络超时,接口调用出现异常等,导致业务请求依赖的接口失败而获取不到数据或者是让系统异常的情况,也没有重试和补偿的机制,这就让系统的稳定性(鲁棒性)大大折扣。重试机制的使用场景是接口没有要求幂等性和强一致性、发送消息失败、争抢锁失败等,接口要求只能调用一次而且必须成功,但这个几乎是很难做到的,所以重试机制是在当今互联网业务开发中的一个很重要的补偿机制。本文介绍了如何使用Java实现HTTP调用的重试机制。原创 2024-12-29 11:45:00 · 1497 阅读 · 0 评论 -
【@Async】一文带你深入学习Spring注解之@Async使用
Spring Boot的@Async注解提供了简单且强大的方式来实现异步处理。通过启用异步支持、定义异步方法并自定义TaskExecutor,可以高效地处理各种异步任务。掌握@Async注解的使用和原理,有助于提升应用程序的性能和响应速度。但是其局限性也是非常明显的,因此,要想用好该@Async注解,还是需要在此基础上加以扩展。我是Wasteland,下期文章再见!原创 2024-12-22 01:57:47 · 1982 阅读 · 0 评论 -
【ReflectionUtils类】带你从原生反射走进反射工具类
反射Reflection被视为动态语言的关键,是一种功能强大且复杂的机制,其不仅被应用Java语言中,也被应用在Go语言中,因此,它在我们的开发过程中非常重要。原创 2024-10-29 15:02:16 · 1154 阅读 · 1 评论 -
【BigDecimal】避坑分享之BigDecimal的四大注意
在Java中,BigDecimal类常被应用在商业计算中来处理数值计算问题。但在使用过程中,其暴露了一些问题值得引起我们注意。原创 2024-10-25 23:30:30 · 1414 阅读 · 0 评论