自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小七的博客

work harder

  • 博客(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如何传入参数以及处理返回结果(XML配置)

MyBatis如何传入参数以及处理返回结果,通过XML进行配置。

2024-10-22 14:16:35 2255

原创 【MyBatis】MyBatis缓存原理详解

MyBatis缓存原理详解,深入源码进行分析。

2024-10-22 14:07:15 1830

原创 【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内置数据源底层源码分析。

2024-06-28 12:35:10 1130

原创 【MyBatis】MyBatis解析全局配置文件源码详解

这篇文章主要介绍了 MyBatis 解析全局配置文件的过程,包括配置文件解析入口、初始化 XMLConfigBuilder、解析全局配置文件、创建 SqlSessionFactory 对象等步骤。文章还详细分析了配置文件中各个节点的解析过程,如 properties、settings、environments、typeAliases、typeHandler、mappers 等。最后,文章总结了 MyBatis 解析全局配置文件的流程。

2024-05-25 18:16:35 1287

原创 【MyBatis】MyBatis的日志实现

本文介绍了MyBatis的日志管理以及日志技术的原理。

2024-04-01 16:58:43 1925

原创 【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框架】Spring事务的原理

本文将详细讲解Spring事务管理地底层原理,让你彻底搞懂Spring事务的运行机制。

2024-02-09 22:14:57 3015

原创 【Spring MVC】Spring MVC框架的介绍及其使用方法

史上最全的Spring MVC使用讲解,一篇文章带你快速掌握Spring MVC的使用方法。

2023-11-04 14:35:17 1409

原创 【Spring框架】Spring监听器的源码分析

一篇文章带你彻底了解Spring监听器的底层原理,从源码角度代理分析它的运作流程。

2023-10-15 11:44:48 535

原创 【Spring框架】Spring监听器的简介和基本使用

本篇文章带你快速了解Spring事件监听器的使用方法和运作模式。

2023-10-14 23:01:19 2633 1

原创 【Java Web】Servlet规范讲解

本篇博客将带你快速了解servlet的配置和使用方法,掌握它的面试考点。

2023-09-07 22:25:22 1142

原创 【Spring框架】一篇文章带你彻底搞懂Spring解决循环依赖的底层原理

史上最全的Spring循环依赖源码详解,一篇文章带你彻底搞懂Spring解决循环依赖的底层原理,横扫面试场。

2023-09-04 20:41:24 9105 7

原创 【Spring框架】Spring事务的介绍与使用方法

本文带你快速搞定Spring事务管理的内容和使用方法,直击面试高频考点。

2023-08-21 12:04:21 1330

原创 【线程池】史上最全的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的Future机制详解(Future接口和FutureTask类)

Java的Future机制详解

2023-06-30 22:47:23 15010 6

原创 【线程池】线程池的ctl属性详解

线程池的ctl属性详解

2023-06-30 22:29:34 2155

原创 【线程池】Java线程池的内部类Worker详解

Java线程池的内部类Worker详解,一篇文章让你彻底搞懂Worker内部类,带你深度分析底层源码。

2023-06-30 22:15:40 3649 2

空空如也

空空如也

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

TA关注的人

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