- 博客(380)
- 收藏
- 关注
原创 【微服务】微服务架构演进
本文系统梳理了软件架构的演进过程,从单体架构、垂直架构、SOA架构到微服务架构,分析了各种架构的优缺点。重点探讨了微服务架构的特点、实现挑战和技术选型,指出微服务虽能提高系统灵活性和可扩展性,但也带来了运维复杂度增加等新问题。详细介绍了Spring Cloud Alibaba作为微服务解决方案的优势,包括服务注册发现、配置管理等核心功能,并提供了2022.0.0.0版本的Maven配置示例。文章强调架构选择需结合实际业务需求,微服务不是银弹,而是一种需要配套基础设施支持的架构模式。
2025-11-17 13:37:43
770
原创 【Spring】Spring Boot自动配置的案例
本文分析了SpringBoot中三种核心组件的自动配置机制:1) Tomcat自动配置通过ServletWebServerFactoryAutoConfiguration实现,根据依赖自动选择Tomcat/Jetty/Undertow;2) AOP自动配置优先使用CGLib代理,默认开启;3) Mybatis自动配置类MybatisAutoConfiguration会创建SqlSessionFactory和Mapper扫描器,通过@Mapper注解识别接口。
2025-11-17 13:19:08
715
原创 【BTC】常见问题解答
比特币核心机制解析:转账、私钥、挖矿与数据趋势 摘要: 本文系统阐述了比特币五大核心问题:1)转账机制中接收方无需在线,地址错误将导致永久损失;2)私钥丢失或泄露无法补救,凸显去中心化特性;3)交易验证需执行脚本组合,特殊脚本可销毁比特币;4)挖矿过程涉及nonce计算,交易费自动归属成功矿工;5)数据显示区块链体积持续增长,矿池集中化趋势明显,交易量尚未达理论峰值。这些机制共同构成比特币运行基础,既体现其技术优势也反映潜在风险。
2025-11-17 11:23:40
702
原创 【Spring】Spring Boot过滤不需要的自动配置类过程分析
本文详细分析了SpringBoot自动配置的过滤机制,重点探讨了AutoConfigurationImportSelector#filter方法的实现原理。文章指出过滤过程主要通过AutoConfigurationImportFilter接口及其实现类完成,包括OnClassCondition、OnWebApplicationCondition和OnBeanCondition三个核心条件类。
2025-10-30 15:22:37
782
原创 【BTC】分叉
本文系统介绍了区块链中的分叉概念及其分类。分叉指区块链分裂成两条链,可分为硬分叉和软分叉。硬分叉由协议重大修改引起(如区块大小调整),导致永久性链分裂;软分叉则是临时性的,由协议限制性修改引发(如缩小区块)。文章详细分析了两种分叉的形成机制、节点行为差异及典型案例(如以太坊ETH/ETC分叉),并探讨了分叉对加密货币和社区的影响,最后提出了解决链间干扰的技术方案(如chainid)。
2025-10-30 15:05:20
782
原创 【BTC】比特币脚本
比特币交易脚本语言解析:文章详细介绍了比特币交易中的脚本执行机制,包括交易实例分析、脚本验证流程(输入/输出脚本分开执行)及三种主要脚本形式(公钥支付、公钥哈希支付、脚本哈希支付)。重点讲解了特殊脚本应用(如销毁比特币的RETURN操作)和脚本语言特点(无循环、密码学功能强大)。这些脚本机制构成了比特币交易验证的基础,在保证安全性的同时优化了多重签名等复杂场景的操作。
2025-09-28 16:01:50
464
原创 【Spring】Spring Boot 自动配置原理分析
本文深入分析了SpringBoot自动配置机制的核心原理,围绕三个关键问题展开:1)自动配置的条件判断(通过@Conditional系列注解实现);2)需要创建的Bean定义(通过@Bean注解标记);3)Bean属性值的来源(通过@ConfigurationProperties绑定配置文件)。文章详细解析了自动配置类的加载过程(通过spring.factories文件)、条件注解的演进(从@Profile到@Conditional)以及属性绑定的实现机制。
2025-09-28 15:53:56
964
原创 【Spring】Spring Boot 自动配置
SpringBoot自动配置原理是面试中的高频问题。自动配置通过@EnableAutoConfiguration实现,核心机制是AutoConfigurationImportSelector扫描META-INF/spring.factories中的配置类,配合@Conditional条件注解实现按需加载。开发者只需引入starter依赖,SpringBoot就会自动配置相关组件,极大简化了配置工作。文章还演示了如何自定义一个线程池starter,包括创建自动配置类并注册到spring.factories中。
2025-09-28 15:37:47
789
原创 【BTC】挖矿
本文系统阐述了比特币挖矿的发展趋势与技术要点。首先解析了比特币全节点与轻节点的差异。随后梳理了挖矿设备的演进,。重点分析了矿池的运作机制,包括组织架构、收益分配方式及其潜在风险。最后探讨了51%攻击的具体形式,如分叉攻击和交易封锁等,说明即使掌握多数算力也无法直接窃取他人资产。
2025-08-02 21:01:13
1481
1
原创 【BTC】挖矿难度调整
本文系统讲解了比特币挖矿难度的调整机制。首先阐述了挖矿难度的概念,指出其与目标阈值成反比关系。然后详细介绍了比特币的调整方法。通过实际数据展示了比特币总算力、挖矿难度和出块时间的变化趋势,验证了调整机制的有效性。最后探讨了挖矿过程中nonce搜索策略的优化问题,说明从0自增在单机环境下是最优策略。
2025-08-02 20:56:04
1443
原创 【Spring】Spring Boot启动过程源码解析
本文深入解析SpringBoot启动流程,从入口类分析到完整容器初始化过程。启动过程分为两大阶段:1) SpringApplication构造阶段,完成应用类型判断、初始化器和监听器加载;2) run方法执行阶段,包含9个关键步骤:环境准备、Banner打印、容器创建、前置处理、容器刷新、后置处理等。重点剖析了事件发布机制(如ApplicationStartingEvent)、配置加载优先级、自动配置原理等核心机制,并指出初始化器和监听器通过spring.factories加载的特殊性。
2025-07-28 12:36:40
1109
原创 【Solidity】编写NFTMarket 合约,实现使用Token买卖NFT
本文介绍了一个支持ERC20扩展代币支付的NFT市场合约,实现了两种NFT交易模式:1)传统授权模式(buyNFT):买家需预先授权合约操作代币,通过transferFrom完成交易;2)回调模式(buyNFTWithCallback):买家通过transferWithCallbackAndData直接转账,触发tokensReceived回调自动完成交易,无需预先授权,提供更优用户体验。合约包含上架(list)、下架(cancelListing)等功能,使用映射记录NFT清单,并确保交易原子性。
2025-07-28 09:38:35
233
原创 在 Windows 上原生运行 Claude Code,告别WSL双系统切换
还在为 Windows 上使用 AI 编程工具必须启动 WSL 而烦恼吗?那种在多个窗口和系统间反复横跳的割裂感,现在终于可以成为历史了。Claude Code 近期的更新带来了原生的 Windows 支持,让整个开发流程变得前所未有的流畅。本文将带你一步步完成在 Windows 上的极简安装与配置,彻底解放你的生产力。
2025-07-21 11:19:11
1424
原创 【Spring】Java SPI机制及Spring Boot使用实例
一篇文章带你学习Java SPI(Service Provider Interface)机制的概念、使用场景及实现方式。
2025-07-08 12:27:27
1346
原创 【BTC】比特币网络
比特币网络采用去中心化的P2P架构,所有节点平等,通过TCP连接传播信息。新节点加入需连接种子节点,退出时直接断开。交易采用泛洪传播机制,首次接收后转发给所有邻居节点。每个节点维护待确认交易集合,处理合法交易并转发,冲突交易按接收顺序判断。网络传播存在延迟和不确定性,可能出现双花攻击风险。实际应用中,交易纠纷需通过信誉机制或外部平台解决,无法直接回滚交易。比特币网络牺牲效率换取鲁棒性,确保去中心化系统的稳定运行。
2025-07-08 11:19:05
1360
原创 【BTC】比特币系统的具体实现
比特币系统采用基于交易的账本模式,通过UTXO数据结构追踪未花费交易输出,确保交易合法性。交易包含多个输入和输出,差额形成交易费作为矿工激励。与以太坊的账户模式不同,比特币隐私性更好但操作更复杂。区块信息包含交易费、出块奖励等,挖矿过程需调整随机数满足难度要求。比特币总量设定为2100万,通过减半机制维持稀缺性。系统安全性依赖于诚实节点占多数算力,防范双花攻击需等待多个区块确认。自私挖矿策略可能减少竞争但伴随高风险。整体而言,比特币通过密码学原理和共识机制构建了去中心化的安全支付系统。
2025-07-07 16:58:50
1830
原创 【MyBatis】MyBatis与Spring和Spring Boot整合原理
讲解Spring Boot如何整合MyBatis,并分析其原理。
2025-07-07 16:52:09
1456
1
原创 【BTC】协议(共识机制)
本文系统梳理了比特币系统的核心原理与技术架构。首先探讨了中心化数字货币设计的局限性,包括双花攻击和私钥安全问题;随后阐释了比特币作为去中心化方案如何通过分布式账本和共识机制解决这些问题。重点解析了比特币交易验证机制、默克尔树数据结构、节点分类(全节点/轻节点),以及基于工作量证明的挖矿机制。文章详细论述了比特币共识协议如何通过算力投票替代直接投票来抵御女巫攻击,并分析了分叉问题的处理逻辑。最后指出比特币虽未突破现有技术边界,但其创新性的经济学模型和分布式理念具有重要价值。全文约150字,完整呈现了比特币体系
2025-07-06 15:54:25
1355
原创 【BTC】数据结构
区块链采用哈希指针连接区块,形成抗篡改的链表结构,每个区块包含前序区块的哈希值。同时,区块内部交易数据通过默克尔树组织,叶子节点为交易数据,上层为哈希指针。轻节点通过默克尔证明验证交易存在性,只需保存区块头中的根哈希值。这种设计结合链表和树结构,确保数据完整性和高效验证。哈希指针的使用使任何篡改都会导致后续哈希值变化,提供强大的安全保障。
2025-07-06 15:38:39
921
2
原创 【MyBatis】PageHelper分页插件的使用与相关原理分析
本文详细介绍了MyBatis分页插件PageHelper的使用方法和实现原理。主要内容包括:1) 在MyBatis、SpringBoot和SpringMVC三种框架中的集成方式,包括依赖引入、配置参数和使用示例;2) 插件核心实现原理,通过拦截器对SQL进行改写,包括统计总数和分页处理;3) 常见问题处理,如对查询结果二次处理导致分页失效等。文章还分析了PageInterceptor、AbstractHelperDialect等关键类的实现细节,帮助开发者深入理解分页插件的运行机制。
2025-07-06 15:30:22
1540
原创 【MyBatis】MyBatis插件机制原理
本文详细解析了MyBatis插件机制原理与实现方式。首先介绍了插件的基本概念和典型应用场景(如分页、公共字段赋值等),随后深入分析了插件机制的实现原理,包括Interceptor接口、@Intercepts/@Signature注解的使用。通过源码剖析了插件加载、植入和执行的全过程,重点讲解了Configuration类如何通过InterceptorChain将插件逻辑织入四大核心组件(Executor、ParameterHandler等)。最后以MySQL分页插件为例,展示了如何通过拦截Statem
2025-07-06 15:13:02
916
原创 【BTC】密码学原理
本文探讨了区块链技术中哈希与签名两大关键密码学技术的应用。在比特币系统中,哈希函数用于挖矿的有效工作证明(工作量证明机制),矿工需暴力计算区块数据使其哈希值小于目标值,该过程计算困难但验证简单。签名技术则用于验证交易合法性,通过私钥加密(签名)和公钥解密的方式确保交易真实性。文章还分析了私钥安全的重要性,指出虽然理论上存在私钥碰撞风险,但在256位公钥体系下概率极低。这两种技术常结合使用,先对交易信息哈希再用私钥签名,保障比特币网络的安全运行。
2025-06-17 20:44:17
746
原创 【Windows】安装或者点击OneDrive没有任何反应的解决方案
一些Windows企业版或者神州网信政府版的策略会禁止使用OneDrive,双击OneDrive安装程序或者点击OneDrive软件会没有任何反应。通过以下设置可以解除相关的限制。
2025-04-16 13:51:21
2924
原创 【MyBatis】如何编写动态SQL
如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。在循环的时候拼接多个sql条件,用trim标签的prefixOverrides属性覆盖第一个and或者or,前缀加上"and (“,后缀加上” )",动态生成一个条件满足多种情况的sql。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。
2024-12-27 13:46:09
1053
原创 【MyBatis】高级结果映射
但是有的时候我们查询的结果并不需要显示全部字段,或者我们需要将A表和B表进行联合查询,查询的结果既有A表的字段,又有B表的字段,这个时候再继续用pojo来作为数据库数据传输的对象显然就不太合适了,我们就需要根据查询结果,再创建一个DTO对象来帮助我们进行数据传输。上面是Emp表对应的pojo对象,包含了Emp表的全部字段,但是现在我们需要进行一个Emp表和DEPT表的联合查询,再去使用这个Emp对象显然就不合适了,需要根据这个联合查询显示的字段,再去创建一个DTO对象。关联元素就是专门用来处理关联关系的;
2024-11-29 14:56:07
1006
原创 【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
1395
原创 【MyBatis】史上最全的MyBatis执行SQL原理分析
史上最全的MyBatis执行SQL的原理分析,深入底层源码,一篇文章带你彻底搞懂MyBayis执行SQL的底层实现,横扫面试场!
2024-07-29 14:21:29
1963
原创 【MyBatis】MyBatis解析动态SQL原理分析
MyBatis通过SqlNode、SqlSource等处理动态SQL,XMLMapperBuilder解析XML,NodeHandler(如IfHandler、TrimHandler)构造动态SQL逻辑,最终生成BoundSql执行。prefixOverrides用于trim标签中忽略特定前缀,精简SQL输出。
2024-07-29 09:42:34
1449
原创 【MyBatis】一篇文章带你彻底搞懂MyBatis解析SQL映射文件底层原理
本篇文章重点分析MyBatis解析SQL映射文件底层原理,深入源码层面进行讲解。史上最全的MyBatis解析SQL映射文件原理文章。
2024-06-28 13:33:33
1668
原创 【MyBatis】MyBatis解析全局配置文件源码详解
这篇文章主要介绍了 MyBatis 解析全局配置文件的过程,包括配置文件解析入口、初始化 XMLConfigBuilder、解析全局配置文件、创建 SqlSessionFactory 对象等步骤。文章还详细分析了配置文件中各个节点的解析过程,如 properties、settings、environments、typeAliases、typeHandler、mappers 等。最后,文章总结了 MyBatis 解析全局配置文件的流程。
2024-05-25 18:16:35
1394
原创 【MyBatis】MyBatis的介绍和基本使用
本文介绍了Java数据库操作框架MyBatis的历程和使用。文章首先讲述了JDBC的基本概念和特点,阐述了其在使用中的优缺点,例如编码量大和异常处理繁琐。在对比JDBC和MyBatis之后,文中介绍了其他数据库操作技术如DBUtils、Hibernate、Spring JDBC和Spring Data JPA。然后详述了MyBatis的组件和结构,并提出其作为半自动ORM框架的优缺点。最后,文章以步骤形式说明了如何搭建和使用MyBatis项目,并对如何通过XML和注解实现基本的数据库增删改查操作进行了描述。
2024-03-31 21:29:03
1004
原创 【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
5217
1
原创 【Spring MVC】Spring MVC拦截器(Interceptor)
本文将带你详细了解Spring MVC拦截器的执行顺序、底层原理以及生产应用。
2024-03-18 21:51:20
3576
原创 【Spring MVC】处理器映射器:AbstractHandlerMethodMapping源码分析
我们现在最流行的就是使用注解实现Controller,那这就会涉及到AbstractHandlerMethodMapping,这个类在我们分析处理请求的源码中非常重要,本篇文章就带你分析AbstractHandlerMethodMapping的底层源码,让你彻底搞懂它的底层原理。
2024-02-24 15:16:03
1772
原创 【Spring MVC】Spring MVC的执行流程与源码分析
史上最全的Spring MVC执行流程源码解析,爆肝一个月带你彻底搞懂Spring MVC的底层原理。学习Spring MVC源码看这一篇就够了。
2024-02-09 23:46:28
1889
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅