- 博客(366)
- 收藏
- 关注
原创 【Spring】Java SPI机制及Spring Boot使用实例
一篇文章带你学习Java SPI(Service Provider Interface)机制的概念、使用场景及实现方式。
2025-07-08 12:27:27
1111
原创 【BTC】比特币网络
比特币网络采用去中心化的P2P架构,所有节点平等,通过TCP连接传播信息。新节点加入需连接种子节点,退出时直接断开。交易采用泛洪传播机制,首次接收后转发给所有邻居节点。每个节点维护待确认交易集合,处理合法交易并转发,冲突交易按接收顺序判断。网络传播存在延迟和不确定性,可能出现双花攻击风险。实际应用中,交易纠纷需通过信誉机制或外部平台解决,无法直接回滚交易。比特币网络牺牲效率换取鲁棒性,确保去中心化系统的稳定运行。
2025-07-08 11:19:05
1002
原创 【BTC】比特币系统的具体实现
比特币系统采用基于交易的账本模式,通过UTXO数据结构追踪未花费交易输出,确保交易合法性。交易包含多个输入和输出,差额形成交易费作为矿工激励。与以太坊的账户模式不同,比特币隐私性更好但操作更复杂。区块信息包含交易费、出块奖励等,挖矿过程需调整随机数满足难度要求。比特币总量设定为2100万,通过减半机制维持稀缺性。系统安全性依赖于诚实节点占多数算力,防范双花攻击需等待多个区块确认。自私挖矿策略可能减少竞争但伴随高风险。整体而言,比特币通过密码学原理和共识机制构建了去中心化的安全支付系统。
2025-07-07 16:58:50
997
原创 【MyBatis】MyBatis与Spring和Spring Boot整合原理
讲解Spring Boot如何整合MyBatis,并分析其原理。
2025-07-07 16:52:09
1147
1
原创 【BTC】协议(共识机制)
本文系统梳理了比特币系统的核心原理与技术架构。首先探讨了中心化数字货币设计的局限性,包括双花攻击和私钥安全问题;随后阐释了比特币作为去中心化方案如何通过分布式账本和共识机制解决这些问题。重点解析了比特币交易验证机制、默克尔树数据结构、节点分类(全节点/轻节点),以及基于工作量证明的挖矿机制。文章详细论述了比特币共识协议如何通过算力投票替代直接投票来抵御女巫攻击,并分析了分叉问题的处理逻辑。最后指出比特币虽未突破现有技术边界,但其创新性的经济学模型和分布式理念具有重要价值。全文约150字,完整呈现了比特币体系
2025-07-06 15:54:25
1069
原创 【BTC】数据结构
区块链采用哈希指针连接区块,形成抗篡改的链表结构,每个区块包含前序区块的哈希值。同时,区块内部交易数据通过默克尔树组织,叶子节点为交易数据,上层为哈希指针。轻节点通过默克尔证明验证交易存在性,只需保存区块头中的根哈希值。这种设计结合链表和树结构,确保数据完整性和高效验证。哈希指针的使用使任何篡改都会导致后续哈希值变化,提供强大的安全保障。
2025-07-06 15:38:39
687
2
原创 【MyBatis】PageHelper分页插件的使用与相关原理分析
本文详细介绍了MyBatis分页插件PageHelper的使用方法和实现原理。主要内容包括:1) 在MyBatis、SpringBoot和SpringMVC三种框架中的集成方式,包括依赖引入、配置参数和使用示例;2) 插件核心实现原理,通过拦截器对SQL进行改写,包括统计总数和分页处理;3) 常见问题处理,如对查询结果二次处理导致分页失效等。文章还分析了PageInterceptor、AbstractHelperDialect等关键类的实现细节,帮助开发者深入理解分页插件的运行机制。
2025-07-06 15:30:22
600
原创 【MyBatis】MyBatis插件机制原理
本文详细解析了MyBatis插件机制原理与实现方式。首先介绍了插件的基本概念和典型应用场景(如分页、公共字段赋值等),随后深入分析了插件机制的实现原理,包括Interceptor接口、@Intercepts/@Signature注解的使用。通过源码剖析了插件加载、植入和执行的全过程,重点讲解了Configuration类如何通过InterceptorChain将插件逻辑织入四大核心组件(Executor、ParameterHandler等)。最后以MySQL分页插件为例,展示了如何通过拦截Statem
2025-07-06 15:13:02
643
原创 【BTC】密码学原理
本文探讨了区块链技术中哈希与签名两大关键密码学技术的应用。在比特币系统中,哈希函数用于挖矿的有效工作证明(工作量证明机制),矿工需暴力计算区块数据使其哈希值小于目标值,该过程计算困难但验证简单。签名技术则用于验证交易合法性,通过私钥加密(签名)和公钥解密的方式确保交易真实性。文章还分析了私钥安全的重要性,指出虽然理论上存在私钥碰撞风险,但在256位公钥体系下概率极低。这两种技术常结合使用,先对交易信息哈希再用私钥签名,保障比特币网络的安全运行。
2025-06-17 20:44:17
628
原创 【Windows】安装或者点击OneDrive没有任何反应的解决方案
一些Windows企业版或者神州网信政府版的策略会禁止使用OneDrive,双击OneDrive安装程序或者点击OneDrive软件会没有任何反应。通过以下设置可以解除相关的限制。
2025-04-16 13:51:21
1488
原创 【MyBatis】如何编写动态SQL
如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。在循环的时候拼接多个sql条件,用trim标签的prefixOverrides属性覆盖第一个and或者or,前缀加上"and (“,后缀加上” )",动态生成一个条件满足多种情况的sql。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。
2024-12-27 13:46:09
962
原创 【MyBatis】高级结果映射
但是有的时候我们查询的结果并不需要显示全部字段,或者我们需要将A表和B表进行联合查询,查询的结果既有A表的字段,又有B表的字段,这个时候再继续用pojo来作为数据库数据传输的对象显然就不太合适了,我们就需要根据查询结果,再创建一个DTO对象来帮助我们进行数据传输。上面是Emp表对应的pojo对象,包含了Emp表的全部字段,但是现在我们需要进行一个Emp表和DEPT表的联合查询,再去使用这个Emp对象显然就不合适了,需要根据这个联合查询显示的字段,再去创建一个DTO对象。关联元素就是专门用来处理关联关系的;
2024-11-29 14:56:07
930
原创 【MyBatis】MyBatis的一级缓存和二级缓存简介
二级缓存是基于 mapper文件的namespace的,也就是说多个sqlSession可以共享一个mapper中的二级缓存区域,并且如果两个mapper的namespace相同,即使是两个mapper,那么这两个mapper中执行sql查询到的数据也将存在相同的二级缓存区域中。这是因为spring整合Mybatis之后,sqlSession是要交给spring容器去管理的,在每一次执行sql之后,spring会将sqlSession关闭,关闭sqlSession会清空一级缓存,所以一级缓存就会失效。
2024-08-31 23:53:13
1309
原创 【MyBatis】史上最全的MyBatis执行SQL原理分析
史上最全的MyBatis执行SQL的原理分析,深入底层源码,一篇文章带你彻底搞懂MyBayis执行SQL的底层实现,横扫面试场!
2024-07-29 14:21:29
1752
原创 【MyBatis】MyBatis解析动态SQL原理分析
MyBatis通过SqlNode、SqlSource等处理动态SQL,XMLMapperBuilder解析XML,NodeHandler(如IfHandler、TrimHandler)构造动态SQL逻辑,最终生成BoundSql执行。prefixOverrides用于trim标签中忽略特定前缀,精简SQL输出。
2024-07-29 09:42:34
1331
原创 【MyBatis】一篇文章带你彻底搞懂MyBatis解析SQL映射文件底层原理
本篇文章重点分析MyBatis解析SQL映射文件底层原理,深入源码层面进行讲解。史上最全的MyBatis解析SQL映射文件原理文章。
2024-06-28 13:33:33
1513
原创 【MyBatis】MyBatis解析全局配置文件源码详解
这篇文章主要介绍了 MyBatis 解析全局配置文件的过程,包括配置文件解析入口、初始化 XMLConfigBuilder、解析全局配置文件、创建 SqlSessionFactory 对象等步骤。文章还详细分析了配置文件中各个节点的解析过程,如 properties、settings、environments、typeAliases、typeHandler、mappers 等。最后,文章总结了 MyBatis 解析全局配置文件的流程。
2024-05-25 18:16:35
1287
原创 【MyBatis】MyBatis的介绍和基本使用
本文介绍了Java数据库操作框架MyBatis的历程和使用。文章首先讲述了JDBC的基本概念和特点,阐述了其在使用中的优缺点,例如编码量大和异常处理繁琐。在对比JDBC和MyBatis之后,文中介绍了其他数据库操作技术如DBUtils、Hibernate、Spring JDBC和Spring Data JPA。然后详述了MyBatis的组件和结构,并提出其作为半自动ORM框架的优缺点。最后,文章以步骤形式说明了如何搭建和使用MyBatis项目,并对如何通过XML和注解实现基本的数据库增删改查操作进行了描述。
2024-03-31 21:29:03
940
原创 【Netty】Netty的使用和常用组件详解
这篇文章主要介绍了Java网络应用框架Netty的基础知识和用法。Netty是基于Java NIO的异步事件驱动网络应用框架,提供了简单易用的API。文章解释了为何Netty选择NIO而不是AIO,主要是由于在Linux系统上,AIO并无显著性能优势。然后,文章还介绍了如何编写第一个Netty程序,包括服务端和客户端的创建和通信实现。最后,文章详细描述了Netty中的重要组件,如EventLoop、Channel和ChannelHandler等,并解释了它们各自的作用。有助于读者快速上手Netty。
2024-03-19 19:00:24
3717
1
原创 【Spring MVC】Spring MVC拦截器(Interceptor)
本文将带你详细了解Spring MVC拦截器的执行顺序、底层原理以及生产应用。
2024-03-18 21:51:20
3225
原创 【Spring MVC】处理器映射器:AbstractHandlerMethodMapping源码分析
我们现在最流行的就是使用注解实现Controller,那这就会涉及到AbstractHandlerMethodMapping,这个类在我们分析处理请求的源码中非常重要,本篇文章就带你分析AbstractHandlerMethodMapping的底层源码,让你彻底搞懂它的底层原理。
2024-02-24 15:16:03
1669
原创 【Spring MVC】Spring MVC的执行流程与源码分析
史上最全的Spring MVC执行流程源码解析,爆肝一个月带你彻底搞懂Spring MVC的底层原理。学习Spring MVC源码看这一篇就够了。
2024-02-09 23:46:28
1669
2
原创 【Spring框架】Spring事务同步
TransactionSynchronizationManager事务同步管理器,管理每个线程的资源(对于事务,DataSource创建的连接对象connection等称作事务的资源)和事务同步(TransactionSynchronization---用来监听事务操作的回调类,其中定义了在事务执行过程中,进行的拓展操作,如before/after--commit/completion,在getSynchronizations中,对其进行sort排序返回)。同步分两种,资源的同步和事务的同步。
2024-02-09 22:31:53
1589
原创 【Spring MVC】Spring MVC框架的介绍及其使用方法
史上最全的Spring MVC使用讲解,一篇文章带你快速掌握Spring MVC的使用方法。
2023-11-04 14:35:17
1409
原创 【Spring框架】一篇文章带你彻底搞懂Spring解决循环依赖的底层原理
史上最全的Spring循环依赖源码详解,一篇文章带你彻底搞懂Spring解决循环依赖的底层原理,横扫面试场。
2023-09-04 20:41:24
9105
7
原创 【线程池】史上最全的ScheduledThreadPoolExecutor源码分析
史上最全的ScheduledThreadPoolExecutor源码分析,一篇文章带你分析ScheduledThreadPoolExecutor底层原理,带你彻底学会定时任务线程池。
2023-07-01 10:56:13
1304
原创 【阻塞队列】阻塞队列DelayedWorkQueue源码详解
阻塞队列DelayedWorkQueue源码详解,一篇文章带你彻底学会DelayedWorkQueue底层原理。
2023-07-01 10:38:49
1458
原创 【线程池】史上最全的ThreadPoolExecutor源码详解
史上最全的ThreadPoolExecutor源码详解,一篇文章带你彻底搞懂ThreadPoolExecutor底层原理。
2023-06-30 22:59:28
3659
原创 【线程池】Java线程池的内部类Worker详解
Java线程池的内部类Worker详解,一篇文章让你彻底搞懂Worker内部类,带你深度分析底层源码。
2023-06-30 22:15:40
3649
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人