源码 原理spring ribbon

<七>lambda表达式实现原理

C++11 函数对象的升级版=>lambda表达式 函数对象的缺点: 使用在泛型算法,参数传递, 比较性质/自定义操作 优先级队列, 需要专门定义出一个类 //lambda表达式语法: //[捕获外部变量](形参列表)->返回值{操作代码} auto func1=[]()->void{cout<<" ......
表达式 原理 lambda lt gt

SpringBoot源码学习2——SpringBoot x Mybatis 原理解析(如何整合,事务如何交由spring管理,mybatis如何进行数据库操作)

阅读本文需要spring源码知识,和springboot相关源码知识 对于springboot 整合mybatis,以及mybatis源码关系不密切的知识,本文将简单带过 系列文章目录和关于我 涉及到spring ioc原理,可移步学习:Spring源码学习笔记12——总结篇IOC,Bean的生命周 ......
SpringBoot 源码 原理 事务 Mybatis

网络编程与通信原理

应用层:HTTP超文本传输协议,基于TCP/IP通信协议来传递数据;传输层:TCP传输控制协议,采用三次握手的方式建立连接,形成数据传输通道;网络层:IP协议,作用是把各种传输的数据包发送给请求的接收方; ......
网络编程 原理 网络

微服务组件-----Spring Cloud Alibaba 注册中心Nacos的CP架构Raft协议分析

前言 本篇幅是继 注册中心Nacos源码分析 的下半部分。 意义 【1】虽说大部分我们采用注册中心的时候考虑的都是AP架构,为什么呢?因为性能相对于CP架构来说更高,需要等待的时间更少【相对于CP架构,采用的是二段提交,AP架构是直接落盘数据,然后进行数据扩散,来达到最终一致,所以客户端收到响应会更 ......
架构 组件 Alibaba Spring Cloud

Gorm源码学习-创建行记录

1. 前言 Gorm源码学习系列 Gorm源码学习-数据库连接 此文是Gorm源码学习系列的第二篇,主要梳理下通过Gorm创建表的流程。 2. 创建行记录代码示例 gorm提供了以下几个接口来创建行记录 一次创建一行 func (db *DB) Create(value interface{}) ( ......
源码 Gorm

8个Spring事务失效的场景,你碰到过几种?

前言 作为Java开发工程师,相信大家对Spring种事务的使用并不陌生。但是你可能只是停留在基础的使用层面上,在遇到一些比较特殊的场景,事务可能没有生效,直接在生产上暴露了,这可能就会导致比较严重的生产事故。今天,我们就简单来说下Spring事务的原理,然后总结一下spring事务失败的场景,并提 ......
场景 事务 Spring

Spring中11个最常用的扩展点,你知道几个?

前言 在使用spring的过程中,我们有没有发现它的扩展能力很强呢? 由于这个优势的存在,使得spring具有很强的包容性,所以很多第三方应用或者框架可以很容易的投入到spring的怀抱中。今天我们主要来学习Spring中很常用的11个扩展点,你用过几个呢? 1. 类型转换器 如果接口中接收参数的实 ......
常用 Spring

Mybatis源码解析之执行SQL语句

作者:郑志杰 mybatis 操作数据库的过程 // 第一步:读取mybatis-config.xml配置文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); // 第二步:构建SqlSes ......
语句 源码 Mybatis SQL

Dubbo架构设计与源码解析(三)责任链模式

作者:周可强 一、责任链模式简介 1、责任链模式定义 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 ......
架构 源码 模式 责任 Dubbo

Vue 响应式原理模拟以及最小版本的 Vue的模拟

在模拟最小的vue之前,先复习一下,发布订阅模式和观察者模式 对两种模式有了了解之后,对Vue2.0和Vue3.0的数据响应式核心原理 1.Vue2.0和Vue3.0的数据响应式核心原理 (1). Vue2.0是采用Object.defineProperty的方式,对数据进行get,set方法设置的 ......
Vue 原理 版本

Spring注解之@Import

@Import可以导入以下几种种类: 普通类 实现ImportSelector接口的类 实现DeferredImportSelector接口的类 实现ImportBeanDefinitionRegistrar接口的类 普通类 被导入的类会被容器注册成一个Bean,可以被依赖注入使用。【4.2 版本之 ......
注解 Spring Import

Spring之后置处理器

Spring的后置处理器是Spring对外开发的重要扩展点,允许我们接入Bean的实例化流程中,以达到动态注册BeanDefinition、动态修改BeanDefinition、动态修改Bean的作用。 BeanFactoryPostProcessor BeanFactory的后置处理器,在Bean ......
处理器 Spring

一文带你了解 Spring 的@Enablexxx 注解

layout: post categories: Java title: 一文带你了解 Spring 的@Enablexxx 注解 tagline: by 子悠 tags: 子悠 前面的文章给大家介绍 Spring 的重试机制的时候有提到过 Spring 有很多 @Enable 开头的注解,平时在使 ......
注解 Enablexxx Spring

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