- 博客(22)
- 收藏
- 关注
原创 Nacos:Nacos配置中心超详细的源码解析(一)
为了理清Nacos配置中心的原理,本篇文章也是花了非常较多的时间去Debug学习,而这往往也是我们学习其他源码的过程:梳理代码逻辑——>画流程图——>总结学习优秀设计思想。市面上有很多不同公司开源的配置中心,而Nacos能成为优秀的配置中心代表,其背后有着非常优秀的设计思想,因此学习Nacos源码是非常有必要的,也希望本篇文章能帮助到你。我是Wasteland,下期文章再见!
2025-03-31 17:50:47
385
原创 Nacos:Nacos和MySQL在Docker上超详细的安装与部署步骤
Nacos作为阿里巴巴开源的服务发现与配置管理工具,不仅支持服务的注册与发现,还集成了配置管理、健康检查、动态DNS服务及服务元数据管理等特性,能够满足现代云原生应用的多样化需求。我是Wasteland,下期文章再见!
2025-03-24 09:15:00
987
5
原创 Docker:超详细的Docker基本概念介绍、命令总结与实战
Docker是一个开源的应用容器引擎,基于go语言开发并遵循apache2.0协议开源,让开发者可以打包它们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙盒机制,相互之间不会存在任何接口,几乎没有性能开销,可以很容易的在机器和数据中心运行。最重要的是,它们不依赖于任何语言、框架或者包装系统。1.docker官网2.docker中文库。
2025-03-21 09:11:36
968
2
原创 JConsole:JDK性能监控利器之JConsole的使用说明与案例实践
在选择一个进程并点击连接后,可以看到界面展示如下图,JConsole界面主要分为六大部分,概览,内存,线程,类,VM和MBean。整体来说,JConsole是一个比较简单但是也很实用的profile工具,能够满足基本监控与性能分析的需求。在实际业务开发中,业务功能实现很重要,但是代码的性能和效率也同样重要,希望大家能够在编写代码之余多多关注。我是Wasteland,下期文章再见!
2025-03-15 20:52:50
917
1
原创 JSR-269 Java中的注解处理器:APT工具的原理应用与自定义注解
如果我们要自定义注解处理器,那么必须继承AbstractProcessor类,因此,理解这个类的方法至关重要。// 注解处理工具的集合,包含了众多工具类:如Filer用来编写新文件,Messager用来打印错误,Elements用来处理Element/***//*** 配置支持的选项,如果不重写这个方法,AbstractProcessor类中默认的实现会读取@SupportedOption注解的配置*/else/**
2025-03-06 12:07:21
952
1
原创 Golang学习01:Go安装和配置+Vscode、GoLand安装激活+Go环境变量避坑的超详细教程
本文详细介绍了Go语言的环境安装以及各种开发环境的安装,希望本篇文章对您有所帮助。最后,希望您工作顺利,生活愉快!
2025-02-16 16:32:36
2249
9
原创 SPI机制:Java SPI原理及源码剖析、应用场景分析与自实现案例实战详解
先定义云计算标准SPI接口,并发布到本地仓库供华为云和阿里云实现:①项目总览:/*** 标准SPI接口/*** 计算方法/*** 加载具体的服务实现*//*** 加载服务(这里简单的直接使用JDK原生的ServiceLoader类)* */if (!// 取第一个} else {/*** CloudComputeService 双重检验锁单例加载* */System.out.println("CloudCompute服务未加载!");
2025-02-08 16:22:49
1057
1
原创 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
1096
2
原创 【MapStruct】深入浅出带你学会从编译调试走进MapStruct源码(二)
本篇文章先普及了一下JSR和JSR269规范的基本概念,以此来引出了MapStruct的作用时机和作用原理,并且简短介绍了java动态编译的过程,然后在介绍了一下如何使用IDEA在编译时开启调试功能,最后调试都源码中结合源码进行了核心类代码的分析。经此,MapStruct相关知识已经基本介绍结束,如果有遗漏或有错误,欢迎评论后续进行修正与补充,而关于MapStruct同样的剖析思路其实也可用于lombok/kotlin等语法糖的原理探究。我是Wasteland,下期文章再见!
2025-01-23 20:59:12
931
原创 【MapStruct】高性能对象转换神器MapStruct使用教程从基础到进阶(一)
MapStruct是一个Java注解处理器,它的主要功能是自动生成类型安全、高性能且无依赖的bean映射代码。这个工具基于“约定优于配置”的原则,极大地简化了Java Bean类型之间的映射实现过程。而根据上文的对比发现:MapStruct作用于Java代码编译时期,不会在运行时进行反射操作,其进行对象转换时速度快。在某些情况下,你可能需要自定义方法进行字段映射。= null?@Mapper#uses可以使用多个类。
2025-01-23 20:55:06
1568
1
原创 【Redis】Redis大key的危害及解决方案分享
通常来说,Big Key指的就是某个key对应的value很大,占用的Redis空间很大,是value过大的问题。这是很多文章中会提到的一点,除此之外,这里想强调的是Redis的key的大小同样也会对性能存在隐患,而为什么我们会比较少去讨论这一点呢,那是因为key是我们人为直接设置的,其相对来说更可控一点,但是它也同样不可忽视。其实我们从存储结构就不难分析得到上述结论:根结构为RedisServer,其中包含RedisDB(数据库)。
2025-01-17 16:12:17
1445
4
原创 【Hive】海量数据存储利器之Hive库原理初探
Apache Hive是由 Facebook 开源用于解决海量结构化日志的数据统计工具,其是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。而HQL其实就是Hive缩写为H,Query缩写为Q,Language缩写为L。
2025-01-15 22:28:29
1313
3
原创 【shell脚本】一文带你打通关shell脚本命令到自动化应用
shell英文翻译过来是外壳的意思,作为计算机语言来理解可以认为它是操作系统的外壳。shell是用C语言编写的程序,它连接了用户和Linux内核,从而让用户能够更加便捷、高效、安全的使用linux内核,我们可以通过shell命令来操作和控制操作系统,比如Linux中的shell命令就包括ls、cd、pwd等等。也可以这样认为,linux中的shell就是linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。Shell其实是一个命令解释器。
2025-01-03 14:15:00
1135
1
原创 【Retry机制】一文带你深入学习JAVA中的Retry机制
业务系统之间、接口之间的调用会有一些不稳定的因素存在,比如网络波动导致接口调用网络超时,接口调用出现异常等,导致业务请求依赖的接口失败而获取不到数据或者是让系统异常的情况,也没有重试和补偿的机制,这就让系统的稳定性(鲁棒性)大大折扣。重试机制的使用场景是接口没有要求幂等性和强一致性、发送消息失败、争抢锁失败等,接口要求只能调用一次而且必须成功,但这个几乎是很难做到的,所以重试机制是在当今互联网业务开发中的一个很重要的补偿机制。本文介绍了如何使用Java实现HTTP调用的重试机制。
2024-12-29 11:45:00
1497
原创 【@Async】一文带你深入学习Spring注解之@Async使用
Spring Boot的@Async注解提供了简单且强大的方式来实现异步处理。通过启用异步支持、定义异步方法并自定义TaskExecutor,可以高效地处理各种异步任务。掌握@Async注解的使用和原理,有助于提升应用程序的性能和响应速度。但是其局限性也是非常明显的,因此,要想用好该@Async注解,还是需要在此基础上加以扩展。我是Wasteland,下期文章再见!
2024-12-22 01:57:47
1980
1
原创 【Git】一文带你搞定Git常用命令及实际应用
Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,主要用于跟踪计算机文件的更改。它被广泛应用于软件开发领域,被用于敏捷高效地处理任何或小或大的项目,帮助开发团队协作管理项目代码。当然,常用的版本控制工具不只有它,还有 SVN,CVS等,但由于Git的优越的特点,它渐渐的受到了越来越多的人的青睐,正在逐步取代svn的地位。因此,为了学好这一版本控制工具,本文将按照Git的安装、Git的常用命令到Git在生产中引申出来的实际应用顺序带着大家把Git打通关。
2024-12-20 21:09:01
1574
1
原创 【bat脚本】一文带你玩转bat脚本命令到自动化应用
BAT脚本是一种简单而强大的自动化工具,适用于Windows操作系统。通过掌握基础语法、常用命令、控制语句及高级技巧,并学会解决中文乱码问题,我们可以编写出功能强大的批处理脚本,实现各种自动化任务。而随着技术的不断发展和进步,BAT脚本仍然具有一定的应用场景和需求,值得深入学习和探索,这里也希望本文对您学习和使用 Bat 脚本有所帮助,并在工作中发挥出它的潜力和价值。我是Wasteland,下期文章再见!
2024-11-19 10:15:00
9147
4
原创 【代码重构】工程质量评价利器之圈复杂度和认知复杂度
在当项目规模达到一定的程度,比如达到十万行的代码量,那么项目肯定存在有些类特别大,方法特别多、特别长。一个类没有做到单一职责,后期对这个类改动会导致其他功能出现Bug。代码阅读性较差,维护困难。编写单元测试麻烦,很难对类中的各方法覆盖完全。在开发过程中,由于不同公司规范可能不一致,开发中也很少人能够去完全遵循规范,而且不同的开发的代码编写习惯不一样,久而久之,代码容易堆积和膨胀,复杂度增加,最终会导致代码维护的成本急剧增加。
2024-11-04 22:56:47
1659
8
原创 【ReflectionUtils类】带你从原生反射走进反射工具类
反射Reflection被视为动态语言的关键,是一种功能强大且复杂的机制,其不仅被应用Java语言中,也被应用在Go语言中,因此,它在我们的开发过程中非常重要。
2024-10-29 15:02:16
1154
2
原创 【BigDecimal】避坑分享之BigDecimal的四大注意
在Java中,BigDecimal类常被应用在商业计算中来处理数值计算问题。但在使用过程中,其暴露了一些问题值得引起我们注意。
2024-10-25 23:30:30
1412
2
原创 Mockito+PowerMock单元测试常见问题与解决方案
单测所在的类需要放在test包下和被测类同目录层级下,如被测类DtsAccountService放在src/main/java 目录com.qiguliuxing.dts.db.service下,那么测试类DtsAccountServiceTest需要相应放在src/test/java 目录com.qiguliuxing.dts.db.service下.我亦无他,唯手熟尔。调整对mock方法的入参,要么同时用真实值,要么同时用模拟值,如Mockito.anyInt()、Mockito.anyLong()…
2024-10-16 09:45:00
1594
原创 Java单元测试篇之Mockito+PowerMock
本篇文章旨在介绍单元测试的基本概念,介绍如何使用Mockito+PowerMock进行单元测试,对开发中坏代码进行预检测。在实际开发中,如果我们想保证代码的高质量,那必然需要写大量单元测试,需要对代码的各类各行及各分支覆盖的非常全面,而伴随而来的是我们又会面临代码在提交合并跑流水线的时间过长等问题,因此后续的文章将介绍一些涉及到单元测试的效率问题和其优化方法。相信大家对于上述jar包版本的选择提高了关注度,且CV大法可以直接让大家避免出现各种版本冲突,代码运行不起来的问题。
2024-10-10 09:52:24
2070
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人