排序
第5节 Spring源码之 prepareRefresh 方法
Spring 容器启动核心方法:refresh(),它内部的流程如下所示: prepareRefresh()方法是容器加载核心方法refresh()方法的第一步流程,主要任务是容器刷新前的准备工作,包括以下几点: 设置容器...
借鉴create-vite搭建自己的创建项目工具(1)源码分析
背景 写这个工具的起因是因为公司一些新建项目的时候都会从老的项目中cv一套出来,然后把里面的代码删掉,重新在这个基础上开发。这样造成了很多的问题,比如1. 上一个代码并没有删除完全,很多...
React Hooks 源码解读之 useSyncExternalStore
react 版本:v18.3.0 1、useSyncExternalStore 是什么 我们的组件通常会从它们的 props、state 以及 context 读取数据。然而,有时一个组件需要从一些 React 之外的 store 读取一些随时间变化的...
Vue3源码阅读——组件更新的流程是怎样的
前言 本文属于笔者Vue3源码阅读系列第六篇文章,往期精彩: 生成vnode到渲染vnode的过程是怎样的 组件创建及其初始化过程 响应式实现——reactive篇 响应式是如何实现的(ref + ReactiveEffect...
Vue3源码阅读——响应式是如何实现的(track + trigger篇)
前言 本文属于笔者Vue3源码阅读系列第五篇文章,往期精彩: 生成vnode到渲染vnode的过程是怎样的 组件创建及其初始化过程 响应式实现——reactive篇 响应式是如何实现的(ref + ReactiveEffect...
2023.27 koa源码-编写miniKoa
大家好,我是wo不是黄蓉,今年学习目标从源码共读开始,希望能跟着若川大佬学习源码的思路学到更多的东西。 可以以通过new关键字创建,说明是个构造函数,也可以用es6的class来实现,内置use 和...
第12节 Spring源码之 Bean 的循环依赖
循环依赖是 Spring 中经典问题之一,那么到底什么是循环依赖?简单说就是对象之间相互引用, 如下图所示: 代码层面上很好理解,在 bean 创建过程中 class A 和 class B 又经历了怎样的过程呢?...
uiautomator2 源码阅读(二):主应用 – Receiver
本节涉及部分:([○] 本节覆盖,[√] 为前面已覆盖,[×] 为确认废弃) app/src/ ├── androidTest │ └── java │ └── com │ └── github │ └── uiautomator ...
并发-AQS之ThreadPoolExecutor源码解读(二)
本文接着上文并发-AQS之ThreadPoolExecutor源码解读(一)继续解读源码 关键方法 shutdown shutdown() 方法的作用是关闭线程池,不再接受新的任务,等待已经提交的任务执行完成 public void sh...
如何正确使用 ThreadLocal,你真的用对了吗? | 京东云技术团队
引言: 当多线程访问共享且可变的数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要ThreadLocal出场了。 ThreadLocal又称线程本地变量,使用其能够将数据封闭在各...
简化本地Feign调用,老手教你这么玩
哈喽大家好啊,我是Hydra。 在平常的工作中,OpenFeign作为微服务间的调用组件使用的非常普遍,接口配合注解的调用方式突出一个简便,让我们能无需关注内部细节就能实现服务间的接口调用。 但是...
ReentrantLock源码解析 | 京东云技术团队
并发指同一时间内进行了多个线程。并发问题是多个线程对同一资源进行操作时产生的问题。通过加锁可以解决并发问题,ReentrantLock是锁的一种。 1 ReentrantLock 1.1 定义 ReentrantLock是Lock接...
结合 vue3 源码探究 nextTick()
之前在 vue2 的项目中,如果遇到更改数据后界面没有按照预期的那样渲染更新,我就会尝试使用 this.$nextTick(),有时候能够解决问题,但有时候并没有用,这时候我就会想,nextTick() 背后的原理...
【源码共读】| 分析 vant4 源码,瀑布流滚动加载的列表
本文参加了由公众号@若川视野 发起的每周源码共读活动,点击了解详情一起参与。 【若川视野 x 源码共读】第45期 | 分析 vant4 源码,如何用 vue3 + ts 开发一个瀑布流滚动加载的列表组件点击了...
源码阅读:classnames.js
源码阅读:classnames.js 简介 classnames 一个简单的 JavaScript 实用程序,用于有条件地将类名连接在一起。 可以通过 npm 包管理器从 npm 注册表上下载: npm install classnames classNames ...
Vue2响应式原理-高级
前言 思考两个问题,在Vue2中的data的数据,如何在视图中展示?当data变化时,如何使视图同步更新展示?这里涉及两个点:数据和视图。 一、思考 要完成上面的功能,需要解决两个问题: 监听data...
未来已来—微信小程序正重塑我们的移动生活
前言 微信小程序作为一种基于微信生态体系的轻量级应用,用户无需下载安装,即可在微信内快速使用各种功能。小程序在我们日常生活中具有很高的重要性。接下来,跟随小编一起深入了解下小程序吧...
Vue3 源码解析 – reactive 响应式工作原理
前言 从 reactive 响应式函数入手,探究 Vue3 响应式原理实现。首先从官方文档的基本使用开始,然后解读 reactive 函数源码,理解它的功能是怎么实现,知其然到知其所以然。最后是源码调试,同...
源码学习之MyBatis的底层查询原理 | 京东云技术团队
导读 本文通过MyBatis一个低版本的bug(3.4.5之前的版本)入手,分析MyBatis的一次完整的查询流程,从配置文件的解析到一个查询的完整执行过程详细解读MyBatis的一次查询流程,通过本文可以详细...
Gin的中间件
AOP和洋葱模型 面向切面编程(AOP) 什么是面向切面编程AOP? - 知乎 AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,用于将横切关注点(Cross-cutting Concerns)与主要业...