原理spring exceptionhandler源码

Spring Security(7)

您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 有时某些业务或者功能,需要在用户请求到来之前就进行一些判断或执行某些动作,就像在Servlet中的FilterChain过滤器所做的那样,Spring Security也有类似机制。Spring Security有三种增加过滤器的方式:addF ......
Security Spring

redux原理分享

概述 一个状态管理工具 Store:保存数据的地方,你可以把它看成一个容器,整个应用只能有一个 Store。 State:包含所有数据,如果想得到某个时点的数据,就要对 Store 生成快照,这种时点的数据集合,就叫做 State。 Action:Action 就是 View 发出的通知,表示 St ......
原理 redux

Kafka事务「原理剖析」

一、事务概览 提起事务,我们第一印象可能就是ACID,需要满足原子性、一致性、事务隔离级别等概念,那kafka的事务能做到什么程度呢?我们首先看一下如何使用事务 Producer端代码如下 KafkaProducer<String, String> producer = new KafkaProdu ......
原理 事务 Kafka

Microsoft.IO.RecyclableMemoryStream源码解读

一、RecyclableMemoryStreamManager 源码地址:https://github.com/Microsoft/Microsoft.IO.RecyclableMemoryStream小对象池和大对象池管理、RecyclableMemoryStream创建、各场景的ETW消息\事件 ......
RecyclableMemoryStream Microsoft 源码 IO

数据结构高阶--二叉搜索树(原理+实现)

二叉搜索树 概念 二叉搜索树又称为二叉排序树,因为这棵树的中序遍历是有序的。二叉搜索树总结起来有以下几个性质: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于于根节点的值 它的左右子树都是二叉搜索树 这棵树中没有重复的元素 举个例子: 二 ......
数据结构 高阶 原理 结构 数据

Java阻塞队列中的异类,SynchronousQueue底层实现原理剖析

上篇文章谈到BlockingQueue的使用场景,并重点分析了ArrayBlockingQueue的实现原理,了解到ArrayBlockingQueue底层是基于数组实现的阻塞队列。 但是BlockingQueue的实现类中,有一种阻塞队列比较特殊,就是SynchronousQueue(同步移交队... ......
队列 异类 SynchronousQueue 底层 原理

【RocketMQ】主从同步实现原理

主从同步的实现逻辑主要在HAService中,在DefaultMessageStore的构造函数中,对HAService进行了实例化,并在start方法中,启动了HAService: public class DefaultMessageStore implements MessageStore { ......
主从 RocketMQ 原理

推荐一款采用 .NET 编写的 反编译到源码工具 Reko

今天给大家介绍的是一款名叫Reko的开源反编译工具,该工具采用C#开发,广大研究人员可利用Reko来对机器码进行反编译处理。我们知道.NET 7 有了NativeAOT 的支持,采用NativeAOT 编译的.NET程序 无法通过ILSpy 之类的传统工具得到源码,这款Reko 可能是唯一一款可以把 ......
源码 工具 Reko NET

SpringBoot3.x中spring.factories功能被移除的解决方案

背景 笔者所在项目组在搭建一个全新项目的时候选用了SpringBoot3.x,项目中应用了很多SpringBoot2.x时代相关的第三方组件例如baomidou出品的mybatis-plus、dynamic-datasource等。在配置好相关依赖、最小启动类和配置之后,发现项目无法启动。于是根据启 ......

【Spring系列】- Spring循环依赖

什么是循环依赖呢?简单来说就是beanA依赖于beanB,beanB依赖于beanA(也就是A类中使用了B类,B类使用了A类)。 ......
Spring

AFL源码分析(一)

AFL源码分析(一) 文章首发于:ChaMd5公众号 https://mp.weixin.qq.com/s/E-D_M25xv5gIpRa6k8xOvw a.alf-gcc.c 1.find_as 这个函数的功能是获取使用的汇编器。首先获取环境变量AFL_PATH,如果这个环境变量存在的话,接着把他 ......
源码 AFL

Docker 工作原理分析

docker 容器原理分析 docker 的工作方式 Namespace 容器对比虚拟机 Cgroups 容器看到的文件 Mount namespace chroot rootfs Volume(数据卷) 打包一个go镜像 总结 参考 docker 容器原理分析 docker 的工作方式 当我们的程 ......
原理 Docker

读 RocketMQ 源码,学习并发编程三大神器

笔者是 RocketMQ 的忠实粉丝,在阅读源码的过程中,学习到了很多编程技巧。 这篇文章,笔者结合 RocketMQ 源码,分享并发编程三大神器的相关知识点。 1 CountDownLatch 实现网络同步请求 CountDownLatch 是一个同步工具类,用来协调多个线程之间的同步,它能够使一 ......
神器 源码 RocketMQ 三大

redisson分布式锁原理剖析

redisson分布式锁原理剖析 ​ 相信使用过redis的,或者正在做分布式开发的童鞋都知道redisson组件,它的功能很多,但我们使用最频繁的应该还是它的分布式锁功能,少量的代码,却实现了加锁、锁续命(看门狗)、锁订阅、解锁、锁等待(自旋)等功能,我们来看看都是如何实现的。 加锁 //获取锁对 ......
分布式 redisson 原理

springBoot 过滤器去除请求参数前后空格(附源码)

背景 : 用户在前端页面中不小心输入的前后空格,为了防止因为前后空格原因引起业务异常,所以我们需要去除参数的前后空格! 如果我们手动去除参数前后空格,我们可以这样做 @GetMapping(value = "/manualTrim") public void helloGet(String user ......
过滤器 空格 springBoot 源码 参数

Spring Boot中@Import三种使用方式!

需要注意的是:ImportSelector、ImportBeanDefinitionRegistrar这两个接口都必须依赖于@Import一起使用,而@Import可以单独使用。 @Import是一个非常有用的注解,它的长处在于你可以通过配置来控制是否注入该Bean,也可以通过条件来控制注入哪些Be ......
方式 Spring Import Boot

ADPCM(自适应差分脉冲编码调制)的原理和计算

ADPCM 用于解决 DPCM 的差值宽度问题, 通过定义一个差值表(例如IMA ADPCM 中使用 89个固定差值, 取值从7到32767), 将差值的范围放宽到16bit, 此时差值在数组中的编号只需要6bit就可以表示(0 - 88), 再进一步只记录编号的变化值, 就将变化量压缩到了4bit... ......
脉冲 编码 原理 ADPCM

Android 内存缓存框架 LruCache 的实现原理,手写试试?

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 前言 大家好,我是小彭。 在之前的文章里,我们聊到了 LRU 缓存淘汰算法,并且分析 Java 标准库中支持 LUR 算法的数据结构 LinkedHashMap。当时,我们使用 LinkedHashMap 实 ......
缓存 框架 LruCache 原理 内存

1、ArrayList源码解析

1 概述 ArrayList的元素:有序、可重复、允许null ArrayList没有实现同步(synchronized),因此线程不安全的。(vector线程安全) ArrayList底层数据结构为数组,容量(capacity):表示底层数组长度。容量不足则触发扩容,创建一个更长的数组,并将元素迁 ......
ArrayList 源码

Spring循环依赖

说明: 1. 本文基于Spring-Framework 5.1.x版本讲解 2. 建议读者对创建对象部分源码有一定了解 概述 这篇讲讲Spring循环依赖的问题,网上讲循环依赖的帖子太多太多了,相信很多人也多多少少了解一点,那我还是把这个问题自己梳理一遍,主要是基于以下出发点: 1. Spring到 ......
Spring

python进阶(28)import导入机制原理

前言 在Python中,一个.py文件代表一个Module。在Module中可以是任何的符合Python文件格式的Python脚本。了解Module导入机制大有用处。 1. Module组成 一个.py文件就是一个module。Module中包括attribute, function等。 这里说的a ......
原理 机制 python import

基于jenkins+kubernetes的cicd流程实践一:环境搭建及方案原理

1.基础环境:Centos7.9,kubernetes:v1.21.5 node-1@112(master):docker,containerd,harbornginx(80),git,etcd node-2@109(master/worker):docker,containerd,ingress_ ......
kubernetes 流程 原理 jenkins 环境

深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇 」

Nginx (Engine X)是一个轻量级的Web服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器、高性能的HTTP服务器,它以高稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。 ......

深入浅出学习透析 Nginx 服务器的基本原理和配置指南「运维操作实战篇」

Nginx 安装非常的简单,且Nginx 启动特别容易,并且几乎可以做到24小时不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下进行软件版本的升级。接下来我们要针对于安装和运维操作进行实战和分析。 ......
深入浅出 实战 原理 服务器 指南

大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-中

本篇详细描述hoodie数据读写流程,进一步加深对数据湖技术的理解。理论后转战集成Spark的使用,通过spark-shell和spark-sql实现hoodie的插入数据、查询数据、更新数据、删除数据、覆盖数据、时间旅行查询等示例,了解创建表、修改表结构、查询分区、删除分区基本用法,为进一步使用奠... ......
数据 双管齐下 下一代 实战 原理

大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-下

本篇演示了Hudi集成Spark的Scala编程示例,并一步步操作说明如何使用DeltaStreamer从Kafka里读取数据写入到Hudi表的HDFS中,接着集成Flink的环境准备,通过基于yarn-session的Flink的sql-client方式提交任务实现插入数据和流式读取数据,了解字节... ......
数据 双管齐下 下一代 实战 原理

大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-后续

本篇实战Hudi集成Flink SQl编程示例实现从生成器表写入Hudi表,打包集群验证;然后通过Hudi Flink CDC实现采集MySQL binlog日志写入Kafka再入到hudi表的完整示例,了解Hudi Flink的基础调试只是,最后通过Hudi集成Hive实现Flink Hive C... ......
数据 双管齐下 下一代 实战 原理

JUC源码学习笔记6——ReentrantReadWriteLock

系列文章目录和关于我 阅读此文需要有AQS独占和AQS共享的源码功底,推荐阅读: 1.JUC源码学习笔记1——AQS独占模式和ReentrantLock 2.JUC源码学习笔记2——AQS共享和Semaphore,CountDownLatch 一丶类结构和源码注释解读 1.ReadWriteLock ......
ReentrantReadWriteLock 源码 笔记 JUC

Seata 1.5.2 源码学习(事务执行)

关于全局事务的执行,虽然之前的文章中也有所涉及,但不够细致,今天再深入的看一下事务的整个执行过程是怎样的。 1. TransactionManager io.seata.core.model.TransactionManager是事务管理器,它定义了一个全局事务的相关操作 DefaultTransa ......
源码 事务 Seata

Spring Boot 多数据源配置

第一种方式: AbstractRoutingDataSource 1.1. 手动切换数据源 application.properties # Order # 如果用Druid作为数据源,应该用url属性,而不是jdbc-url spring.datasource.order.jdbc-url=jdb ......
数据源 数据 Spring Boot