自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 离谱!加了一个 @NotNull,接口竟然返回两条重复报错?

Lombok的1.18.24版本和Hibernate Validator的6.0.22版本一起使用会导致@NotNull的校验信息重复,你知道是什么原因么?

2025-12-14 09:52:33 859

原创 Pagehelper触发 JVM 类校验失败,Idea 却因 -noverify 藏了雷

今天踩到了一个jar包版本冲突导致的类加载过程中校验出错的问题,本文将带你从这个问题来加深对类加载过程的理解。

2025-12-07 09:54:30 883

原创 同样是简化代码,Lambda 和匿名内部类的核心原理是什么?

你经常在用的Lambda表达式和匿名内部类原理是什么你知道么?想了解的话,快来看看这篇文章吧!

2025-11-08 17:09:57 422

原创 别乱继承 WebMvcConfigurationSupport!Spring Boot 静态资源 404 的血泪坑

继承了WebMvcConfigurationSupport之后就导致静态资源失效了,本文将带你从源码角度分析失效的原因!

2025-10-01 10:59:41 1055

原创 MyBatis 参数名解析内幕:argX、paramX 到真实参数名的原理

你知道为什么MyBatis的XML文件中通过arg0, param1 或者字段名称等格式引用值么?本文将带你从源码角度进行分析。

2025-09-21 18:06:42 825

原创 为什么 MyBatis Mapper 接口能像普通 Bean 一样被 @Autowired?

MyBatis中的Mapper接口是如何变成Spring中的Bean对象的,本文将带你从源码角度进行分析!

2025-09-06 14:07:01 1082

原创 Spring把「手动」的复杂裹成了「自动」的温柔

想知道是怎么Spring把「手动」的复杂裹成了「自动」的温柔么?本文将带你从源码角度分析Spring是如何实现自动配置某些类的。

2025-08-23 09:18:04 1030

原创 Apollo 凭什么能 “干掉” 本地配置?

Apollo配置中心的配置为什么能够覆盖掉本地配置文件中的配置?本文将从源码角度带你进行分析配置的覆盖和更新原理。

2025-08-17 08:33:04 729

原创 3 个案例看透 Spring @Component 扫描:从普通应用到 Spring Boot

通过 3 个案例让你看透 Spring @Component 扫描:从普通应用到 Spring Boot的全过程。

2025-08-10 10:30:12 1082

原创 搞懂这两个组件,Spring 配置问题少一半!

Spring中的配置是不是随时都在用,但是却不知道其原理是什么?本文将带你从源码角度分析@PropertySource和PropertySourcesPlaceholderConfigurer的作用。

2025-08-02 14:22:34 987

原创 Java注解底层竟然是个Map?

你敢信,Java的注解底层实现居然是个Map,本文将带你从源码层面详细解析Java中注解实现的底层原理。

2025-07-26 16:01:08 1003

原创 别再逐个注入了!@Autowired 批量获取接口实现类的核心逻辑拆解

本文将从源码角度剖析Spring中使用@Autowired注解一次注入类型的所有实现类的Bean的原理

2025-07-13 15:55:25 461

原创 这就是宽松的适配规则!

你知道什么是Spring Boot中对象注入属性的值的宽松适配原则么,本文将带你从源码角度学习这个原则!

2025-06-22 19:52:53 926

原创 明明说好的国际化,可你却还是返回了中文

兄弟们啊,我又踩坑了,明明说好的按照国际化信息返回,可实际却还是返回了中文,快来看看我是如何调到这个坑里面去的?

2025-06-07 18:51:45 920

原创 一个 Bean 就这样走完了它的一生之 Bean 的消亡

想了解 Spring 中 Bean 的销毁流程么?本文将从 Spring 源码的角度带你一步一步查看 Spring 中的 Bean 销毁时候生命周期的每个方法是如何被调用的。

2025-05-24 14:09:06 697

原创 一个 Bean 就这样走完了它的一生之 Bean 的出生

一个 Spring 中的 Bean 的生命周期是怎样的,本文将从 Spring 源码的角度带你一步一步查看 Spring 中的 Bean 的生命周期的每个方法是什么时候调用的。

2025-05-18 20:11:38 696

原创 Spring 中 @Value 注解实现原理

你知道Spring中@Value注解修饰的字段的值是如何注入的么,本文将带你从源码角度进行分析@Value注解的实现原理。

2025-05-05 10:51:45 518

原创 Spring 中@Autowired,@Resource,@Inject 注解实现原理

你知道Spring中的@Autowired,@Resource,@Inject 这些注解的实现原理么?

2025-04-24 14:49:48 925

原创 是谁造成了 NoClassDefFoundError?

你遇到过Java中的NoClassDefFoundError报错么,这个报错和ClassNotFoundException 有什么区别呢?

2024-12-26 09:15:00 825

原创 Java 中的这个绝对值有点不绝对啊!

Java 中的 Math.abs() 方法居然不绝对,这个坑你踩过么?快来看看这到底是个什么坑吧!!!

2024-12-24 09:15:00 1337

原创 Windows 10 下编译 64 位 OpenJDK 8 并单步调试

我看你骨骼清奇,是个百年难得的奇才,我这有套 Windows 10 上编译 OpenJDK 8 的方法,就免费传授给你吧!

2024-12-14 19:45:24 1408

原创 哪里有 class 告诉我?

本文介绍用户类路径的设置的参数以及不同设置方法的优先级以及从 JVM 源码角度分析了引导类路径是如何设置的,让你对不同的类路径有更深刻的理解。

2024-12-11 09:15:00 1049

原创 一个 Bug JDK 居然改了十年?

你敢相信么一个简单的Bug,JDK 居然花了十年时间才修改完成。赶快来看看到底是个什么样的 Bug?

2024-12-03 09:45:39 947

原创 这就是 Java 的泛型!

本文将带你详细解析 Java 泛型,了解泛型的原理、常见的使用方法以及泛型的局限性,让你对泛型有更深入的了解。

2024-11-30 23:27:02 1311

原创 byte 加 byte 居然是 int 了?

为什么Java中两个byte相加的结果是int?本文将从Java语言规范和JVM规范带你研究这个问题。

2024-11-07 18:19:54 522

原创 谁让你创建两个对象的?

如果CLASSPATH下有两个不同版本的jar包,一个版本的jar包有@Component注解,另外一个版本没有,Spring到底会不会创建Bean?

2024-09-28 17:03:05 502 1

原创 灵活的 SPI 机制

本文介绍了Java中SPI机制实现的大概原理以及SPI机制在常见的框架如JDBC的Driver加载,SLF4J日志门面实现中的使用。

2024-07-21 22:45:17 444 1

原创 操作系统messages文件位置更改

通过修改这个配置文件,可以调整操作系统日志实际输入的路径,如下图所示,这里将配置文件中的路径调整为了。这个系统之前是做过安全加固的,我怀疑它改过操作系统的某些配置,调整了系统日志默认输出的文件路径。在遇到一个问题的时候需要查看操作系统的日志,但是到操作系统上的。文件中发现该文件已经很久没有刷新过了。经过查阅资料发现,操作系统的日志是由。...

2022-08-14 11:37:41 1335

原创 一个由硬链接引发的问题

最近关于 Fastjson 的漏洞又被爆出来了,作为修理工(哦不,专业的软件工程师),又到了我们表演的时候了。我们有很多服务是用的老版本的有漏洞的jar包,为了解决这个漏洞问题,我们决定来个偷梁换柱,使用新版本的jar包直接把老版本的有漏洞的jar版本直接覆盖掉。哎哎哎,要想程序搞得好,三十六计不可少。既然方案确定了,那就开始干,具体思路如下:代码的逻辑如下图所示:整体思路很简单,但是问题就出在这个备份上面。在实际的测试过程中,发现备份的目录下,jar包的版本大多数都变成新版本的jar包了,而不是老版本的

2022-06-26 19:58:45 270

原创 我掉到 MessageFormat 的坑里面去了!

Java 中的 MessageFormat 在格式化数字的时候有坑,你踩过么?快来看看这个到底是个什么样的坑?

2022-06-19 17:12:47 500

原创 Linux sudo 提权之软链接攻击

theme: awesome-green软链接提权的原理低权限用户能够以 root 用户的权限执行某个脚本,该脚本中又使用到了诸如 chown 等命令修改文件的权限,且该文件又能够被低权限的用户所修改。因此低权限的用户可以删除该文件,然后创建一个同名的文件,但是这个文件是指向一个高权用户才能修改的文件,例如 /etc/passwd。这样在低权用户在执行命令的时候就能够修改 /etc/passwd 这个文件的权限了,这样就相当于低权限用户能够越权操作了。实验验证在Linux上创建一个低权限用户 t.

2022-05-08 20:04:28 1773

原创 Linux 中的内存使用率计算方式

背景介绍在工作中处理问题的时候,遇到一个问题,自己根据 top 命令时查看到的 used 和 total 计算出来的内存使用率已经达到 90% 以上了,但是系统自带的监控软件计算出来的使用率往往没有这么高。在网上查询了一些文章,说应该使用 free 命令,top 命令显示的结果不太准确,因此决定将自己的学习过程记录一下。小知识Linux 的显示命令中有 free 和 available 两种表示空闲的内存,它们之间的区别如下:free 表示这部分内存没有被用.

2022-03-20 17:09:29 6589 1

原创 Java Web 应用- JSP 基本使用

JSP 4 中基本语法:JSP 注释: <%-- 注释内容 --%>JSP 声明: JSP 页面声明的变量或方法将转化成 JSP 生成的对应的 Servlet 的成员变量或方法<%! public int count; public String hello() { return "hello"; }%>输出表达式:...

2019-12-22 18:17:00 158

原创 Java Web 应用-JSP 原理

JSP 组成:静态部分: 标准的 HTML 标签, 静态的页面内容.动态部分: 受 Java 控制的部分, 由 Java 脚本动态生成.JSP 的实质:JSP 是 Servlet 的一种简化, 容器(这里指的是 Tomcat)会为 JSP 生成一个相对应的 Servlet 实现类, JSP 的内容在该实现类的 service() 进行输出. 对于 Tomcat 容器来说, 对每一个...

2019-12-22 18:16:22 160

原创 Java Web 应用-组成结构

1.Web 应用结构:应用名称:WEB-INF: 是一个特殊的文件夹, 容器会包含该文件夹下的内容, 客户端浏览器无法直接访问该文件夹下的内容.classes: 存放应用的 class 文件.lib: 存放应用所依赖的包.web.xml: 配置该该 Web 应用. 每个容器都会提供一个系统的 web.xml 文件, 用于描述所有 Web 应用的配置属性. Tomcat 容器的系统 ...

2019-12-22 18:15:23 298

原创 Linux-ln 命令

1.ln 命令:创建符号链接: ls -s fileName softLinkName示例: ln -s test.txt test.ln查看链接: ls -l test.ln可以看到 test.ln 是指向 test.txt 这个文件的创建硬链接: ls test.txt test示例: ln test.txt test1.ln查看链接: ls -l test1.ln...

2019-12-20 10:10:21 201

原创 Linux-nfs 文件共享

一台机器作为服务端, 一台作为客户端. 系统版本为 CentOS 7.安装 nfs-utils:yum install nfs-utils服务端和客户端都要安装设置 nfs 服务为开机启动:systemctl enable rpcbindsystemctl enable nfs启动 nfs 服务并查看状态:systemctl start rpcbindsystemctl st...

2019-12-19 22:19:58 154

原创 Linux 常用命令-lsblk, blkid

1.lsblk:参数含义:-d: 仅列出磁盘本身, 并不会列出该磁盘的分区数据.-f: 同时列出该磁盘内的文件系统名称.-p: 列出该设备的完整文件名.-m: 同时输出该设备在 /dev 下面的权限数据示例:列出系统所有磁盘及磁盘内的分区: lsblk列出 /dev/sda 设备内的所有数据的完整文件名: lsblk -ip /dev/sdablki...

2019-12-19 22:19:01 564

原创 Linux-磁盘分区

1.磁盘组成:盘片(platter): 一般磁盘会有两个以上的盘片组成, 每个盘面都对应地有一个读/写磁头.磁头(head): 磁头用于向磁盘写入数据或从磁盘读出数据.磁道(track): 磁道是对盘面的划分, 磁道是围绕盘面圆心的一个个同心圆, 由外向里编号.扇区(sector): 扇区是对磁道的划分, 将磁道划分为一段一段的弧, 这段弧就是扇区.柱面(cyli...

2019-12-18 22:06:18 310

原创 MyBatis-MyBatis 插件

插件调用过程:MyBatis 插件使用的责任链模式, 这里的责任链模式是结合动态代理来实现的. 假设现在存在按顺序配置的 A, B, C 三个签名相同的拦截器, MyBatis 会按照 C>B>A>target.proceed()>A>B>C 顺序执行./** * 接口 */public interface HelloWorld { voi...

2019-12-17 17:15:47 242

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除