源码分析目的知其然,知其所以然项目引用此博文的依据:hutool-5.6.5版本 源码 <dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>.6.5<
......
400
0
0
2024-02-29
摘要:我们已经知道,synchronized 是 Java 的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock 提供了比 synchronized更广泛的锁操作,它能以更优雅的方式处理线程同步问题。本文以synchronized与Loc
......
227
0
0
2024-02-29
前几天工作之余,同事让我写一个Maven插件,因为项目很多很杂,我们公司又没有专业的数据库字典管理工具,都是我们开发人员用Excel整理一个数据字典给我们现场实施人员,每次增加新功能或该需求,增加表和修改数据时,对Excel形式数据字典维护有点。。。,此文不是讲如何维护Excel而是手写maven插件,对于我需要的功能用Maven插件来实现太简单了。那就开始
......
296
0
0
2024-02-29
你好,我是悟空。背景最近在做一个关于邮件的专栏:《SpringBoot 邮件打怪升级》。旨在从 0 开始,带你搭建一个完整的基于 SpringBoot 技术栈 Email 邮件服务。适合人群:对 SpringBoot 开发感兴趣、对邮件服务感兴趣的开发人员。整个专栏目录如下,后续会加更。第一篇是通过 SpringBoot 发送邮件的三种方式,项目代码如下。代
......
225
0
0
2024-02-29
大家好,我是不才陈某~现在有这么一个需求:就是我们日志的开与关是交给使用人员来控制的,而不是由我们开发人员固定写死的。大家都知道可以用aop来实现日志管理,但是如何动态的来实现日志管理呢?aop源码中的实现逻辑中有这么一个步骤,就是会依次扫描Advice的实现类,然后执行。我们要做的就是自定义一个advice的实现类然后,在用户想要开启日志的时候就把advi
......
205
0
0
2024-02-29
大家好,我是不才陈某~今天这篇文章来介绍一下Nacos配置中心的原理之一:长轮询机制的应用为方便理解与表达,这里把 Nacos 控制台和 Nacos 注册中心称为 Nacos 服务器(就是 web 界面那个),我们编写的业务服务称为 Nacso 客户端;Nacos 动态监听的长轮询机制原理图,本篇将围绕这张图剖析长轮询定时机制的原理:ConfigServic
......
262
0
0
2024-02-29
几乎所有的 Java 面试都是以 String 开始的,如果第一个问题没有回答好,则会给面试官留下非常不好的第一印象,而糟糕的第一印象则会直接影响到自己的面试结果,就好像刚破壳的小鹅一样,会把第一眼看到的动物当成自己的母亲,即使它第一眼看到的是一只小狗或小猫,也会默认跟随其后,心理学把这种现象叫做印刻效应。印刻效应不仅存在于低等动物之中,同样也适用于人类,所
......
212
0
0
2024-02-29
一、创建线程的四种方法首先,所有的创建线程的方式都是基于Thread类来实现,每个线程都必须通过 Thread 类的构造方法创建,并实现 run() 方法来执行线程的任务。继承Thread类实现多线程继承类Thread是支持多线程的功能类,只要创建一个子类就可以实现多线程的支持。所有的java程序的起点是main方法,所以线程一定有自己的起点,那这
......
243
0
0
2024-02-28
场景复现数据库初始化有9条记录。当我通过分页插件去查询数据库时,查询第2页,每页10条记录时,查询的结果竟然有9条数据。结果显然不合理,因为我查询第2页,按照逻辑应该查询第11-20条记录,因此不存在,所以返回为空,但是现在却返回9条记录。疑问如下:为什么返回数据???为什么返回9条数据???解决办法pagehelper:
# helperDialect
......
214
0
0
2024-02-27
源码下面代码的返回结果是1不是2,下面从字节码的角度分析一下原因public class Start {
public static void main(String[] args) {
int demo = demo();
System.out.println(demo);
}
public static int
......
222
0
0
2024-02-27
写作目的最近看到了一篇MyBatis的分页实现原理,文章里描述到使用ThreadLocal,其实想主要想看看ThreadLocal的巧妙使用,并且看一下分页是如何实现的。源码下载ChaiRongD/Demooo - Gitee.com源码跟踪其实一个简单的分页如下面代码所示,使用PageHelp对象设置分页的参数,然后把查询到的List对象作为参数传入Pag
......
276
0
0
2024-02-27
stop强制退出(十分不推荐)记住,线程的终止,并不是简单的调用 stop 命令去。虽然 api 仍然可以调用,但是和其他的线程控制方法如 suspend、resume 一样都是过期了的不建议使用,就拿stop 来说,stop 方法在结束一个线程时并不会保证线程的资源正常释放,因此会导致程序可能出现一些不确定的状态。class MyThreadForStop
......
216
0
0
2024-02-27
为何要用Reactor1BIO下面是采用BIO的方式进行网络连接{
// 创建一个serverSocket对象,相当于服务器,并且自己设定端口,最好设置1024以后
ServerSocket serverSocket = new ServerSocket(8888);
while (true){
// 调用acce
......
257
0
0
2024-02-27
源码下载ChaiRongD/Demooo - Gitee.comList集合ymlmyproject:
whitelist:
users:
- zhangsan
- lisi
- 王五
properties@Configuration
@ConfigurationProperties("mypro
......
196
0
0
2024-02-27
写作缘由在和某学长炫耀在自己会用Redis+Lua实现滑动窗口限流时,他说现在都用RateLimiter,所以就我就想搞个Demo,但是度娘了一下,感觉我搜索到的博客有几个个人认为不太完善的地方,比如只贴了部分代码,没贴依赖。尤其是你用AOP实现的时候,其实依赖哪个还有有讲究的;还有一个问题就是大多都是基于AOP实现,拦截器实现也是一个不错的方式,所以此处用
......
214
0
0
2024-02-27