EF Core源码分析
最近在接触DDD+micro service来开发项目,因为EF Core太适合DDD模式需要的ORM设计,所以这篇博客是从代码角度去理解EF core的内部实现,希望大家能从其中学到一些心得体会去更好的写出高质量的代码。从github 上去下载ef core仓库, 本篇代码的版本是基于tag v5.0.3的,如果大家在以后看见这篇博客,可以在...
2024-01-10懂SpringAOP源码
1 主要的接口1.1 Advice 通知本接口定义了切面的增强方式,如:前置增强 BeforeAdvice,后置增强 AfterAdvice,异常增强 ThrowsAdvice 等。下面看两个主要的子接口的源码。public interface MethodBeforeAdvice extends BeforeAdvice { /** * 目标方法 method 开始执行前,AOP 会回调此方法 */ void before(Method method, Object[] a...
2024-01-10ZooKeeper源码阅读——目录帖
预计2020年5月之前,对于下面这些主题我会学习完毕,并且输出成日志。 Zookeeper源码编译(Zookeeper 3.4.11)并IDEA启动 ZooKeeper客户端:ZooKeeper源码阅读-客户端 先学习zk客户端源码的目的其实很简单,就是以为client相关代码比较少,比较简单。 客户端主要是连接zk服务端、创建session、...
2024-01-10SpringIOC容器源码分析
人不学不知道Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spring 相关的一些问题。本文...
2024-01-10源码分析-react2-根节点渲染
//FiberNode{ alternate : '通过该属性和后面的切片进行比较', child : '改切片的子切片', firstEffect : '当前要加入的切片', stateNode : '当前切片的基本信息'}// Fiber对象...
2024-01-10修改jumpserver源码并且实现一个自定义功能模块
在前面已经说了,如何打开jumpserver的管理控制台并且自定义自己的数据模型。接下来实现一个自定义的功能模块。先看效果!一 定义好自己的模型(model) 1.1 这一块儿在前一篇博文已经讲过了二 定义好自己的app(这里注意 一定要自定义app,不要在源码上修改别人的app,因为jumperver的源码不是那么简...
2024-01-10微软抄袭AppGet始末,开源普法任重道远
本文作者:o****0近日,开源项目 AppGet 作者 Keivan Beigi 与微软 WinGet 项目的“抄袭纠纷”事件迎来了最新进展。微软方面做出回应,坦承“辜负了 Keivan 和 AppGet”,并肯定了 Keivan 与 AppGet 对微软新项目的贡献。 今年 5 月,微软在 Build 2020 大会上发布了新的软件包管理工具 WinGet,并将其开源。 而就在 ...
2024-01-106 个开源的奇妙清单(Wunderlist)替代品
喜欢列表?看看这个便捷的开源应用程序列表,以管理你所有的列表!奇妙清单(Wunderlist)是一款清单应用,受到很多人的喜爱,但从 2020 年 5 月 6 日起,它就永远停止了。它的网站鼓励现有用户下载并使用“微软待办”来代替它。这很诱人,因为它可以轻松导入你多年来制作的所有这些列表。不...
2024-01-10PowerJob 的故事开始:“玩够了,才有精力写开源啊!”
本文适合有 Java 基础知识的人群作者:HelloGitHub-SalieriHelloGitHub 推出的《讲解开源项目》系列。经过几番的努力和沟通,终于邀请到分布式任务调度与计算框架:PowerJob 的作者 Salieri,加入 HG 的开源讲解系列,开启了他的 PowerJob 讲解系列????。后续每周三将更新一篇,欢迎大家持续关注,希望你能从本...
2024-01-10分布式开源协调服务——Zookeeper
目录一、ZooKeeper概述二、ZooKeeper数据模型1)ZooKeeper数据模型Znode1、引用方式2、Znode结构3、节点类型4、观察2)ZooKeeper中的时间1、Zxid2、版本号3)ZooKeeper节点属性三、ZooKeeper架构四、ZooKeeper中Observer【ZooKeeper伸缩性】五、ZooKeeper原理1)恢复模式2)广播模式六、Zook...
2024-01-10erp是啥
品牌型号:联想拯救者Y9000P系统:Windows 11ERP系统是企业资源计划(EnterpriseResourcePlanning)的简称,是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。它是从MRP(物料需求计划)发展而来的新一代集成化管理信息系统,它扩展了MRP的功能,其核心思想是供应链管理。它跳出了传统企业边界,从供应链范围去优化企业...
2024-01-05详解SpringMVC从基础到源码
认识SpringMVCSpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。SpringMVC 处理请求过程 客户端发起请求,会首先经过前端控制器 DispatcherServlet 进行转发,转发...
2024-01-10【Spring源码分析】AOP源码解析(下篇)
本文内容纲要:【Spring源码分析】AOP源码解析(下篇)AspectJAwareAdvisorAutoProxyCreator及为Bean生成代理时机分析上篇文章说了,org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator这个类是Spring提供给开发者的AOP的核心类,就是AspectJAwareAdvisorAutoProxyCreator完成了【类/接口-->代理】的转换过程,首先...
2024-01-10spring源码解析之AOP原理
本文内容纲要:spring源码解析之AOP原理一、准备工作** **在这里我先简单记录下如何实现一个aop:AOP:【动态代理】 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式; 1、导入aop模块;Spring AOP:(spring-aspects) 2、定义一个业务逻辑类(MathCalculator);在...
2024-01-10redis5.0.7源码阅读——双向链表
redis中动态字符串sds相关的文件为:adlist.h与adlist.c一、数据结构redis里定义的双向链表,与普通双向链表大致相同单个节点:1 typedef struct listNode {2 struct listNode *prev;3 struct listNode *next;4 void *value;5 } listNode;链表:1 typedef struct list {2 listNode *head;3 listNode *tail;...
2024-01-10Spring框架之jdbc源码完全解析
本文内容纲要:Spring框架之jdbc源码完全解析Spring框架之jdbc源码完全解析Spring JDBC抽象框架所带来的价值将在以下几个方面得以体现:1、指定数据库连接参数2、打开数据库连接3、声明SQL语句4、预编译并执行SQL语句5、遍历查询结果(如果需要的话)6、处理每一次遍历操作7、处理抛出的任何异常...
2024-01-10剑指Spring源码(一)
本文内容纲要:剑指Spring源码(一)Spring,相信每个Java开发都用过,而且是每天都在用,那强大又神秘的IoC,AOP,让我们的开发变得越来越简单,只需要一个注解搞定一切,但是它内部到底是什么样子的呢?跟着我,一起探究Spring源码把。写在前面的话:Spring项目距今已有15年左右的历史了,是众多J...
2024-01-10如何使用svn获取spring源码
看网上写使用这个url就可以, 但是报错说文件夹不存在, 怎么解决呢?回答:文件已经不存在,应该是SVN主机上你要的文件被删除了所以你要去SVN主机上找问题,是误删还是怎么地回答:git clone https://github.com/spring-projects/spring-framework 或者在 eclipse 中安装 git 插件。回答:地址改成这个 链接描述 就好...
2024-01-10Spring核心框架 - AOP的原理及源码解析
本文内容纲要:Spring核心框架 - AOP的原理及源码解析一、AOP的体系结构如下图所示:(引自AOP联盟)层次3语言和开发环境:基础是指待增加对象或者目标对象;切面通常包括对于基础的增加应用;配置是指AOP体系中提供的配置环境或者编织配置,通过该配置AOP将基础和切面结合起来,从而完成切面...
2024-01-10spring5 源码深度解析----- IOC 之 默认标签解析(上)
本文内容纲要:- 概述- Bean标签的解析及注册- 解析BeanDefinition- bean详细解析过程- 创建用于承载属性的BeanDefinition- 各种属性的解析- 解析meta元素- 解析replaced-method属性- 解析constructor-arg- 解析子元素properties- 解析子元素 qualifier概述接前两篇文章 spring源码深度解析—Spring的整体架构和环...
2024-01-10redis5.0.7源码阅读——压缩列表ziplist
redis中压缩列表ziplist相关的文件为:ziplist.h与ziplist.c压缩列表是redis专门开发出来为了节约内存的内存编码数据结构。源码中关于压缩列表介绍的注释也写得比较详细。一、数据结构压缩列表的整体结构如下(借用redis源码注释):1 /*2 <zlbytes> <zltail> <zllen> <entry> <entry> ... <entry> <zlend>3 */各个部分的...
2024-01-10openjdk源码编译踩坑
1. 在ubuntu18.04下编译openjdk源码1.1 apt-get 无法安装libx11-dev, 换成了aptitude,结果还是安装不成功。并且发现aptitude使用不习惯,要换回apt-get,问题就出在了这里。由于需要自己下载.deb报,这时在便在搜索引擎中去搜索,导向了一些网址,然后再去下载某些deb.安装之后却发现apt还是有某些兼容问题,提示...
2024-01-10SpringCloudOpenFeign源码解析
0. 入门demo此代码是 OpenFeign 的示例代码,获取一个Github 仓库的所有贡献者,创建一个issue。 建议由此开始 DEBUG 调试阅读源码interface GitHub { @RequestLine("GET /repos/{owner}/{repo}/contributors") List<contributor> contributors(@Param("owner") String owner, @Param("repo") String repo); @RequestL...
2024-01-10ShardingSphere源码解析
根据官网的介绍,SS去连接数据库的时候有2种模式,一种是内存限制模式,一种是连接限制模式内存限制模式:使用此模式的前提是,ShardingSphere对一次操作所耗费的数据库连接数量不做限制。 如果实际执行的SQL需要对某数据库实例中的200张表做操作,则对每张表创建一个新的数据库连接,并通过多...
2024-01-10Redis高并发防止秒杀超卖实战源码解决方案
目录1:解决思路2:添加 redis 常量3:添加 redis 配置类4:修改业务层1:秒杀业务逻辑层2:添加需要抢购的代金券3:抢购代金券5:postman 测试6:压力测试8:配置Lua9:修改业务层1:抢购代金券10:压力测试1:解决思路将活动写入 redis 中,通过 redis 自减指令扣除库存。2:添加 redis 常量commons/constant/Re...
2024-01-10redis5.0.7源码阅读——跳跃表skiplist
redis中并没有专门给跳跃表两个文件。在5.0.7的版本中,结构体的声明与定义、接口的声明在server.h中,接口的定义在t_zset.c中,所有开头为zsl的函数。一、数据结构单个节点:typedef struct zskiplistNode { //key,唯一 sds ele; //分值,可重复 double score; //后退指针 struct zskiplistNode *backward; ...
2024-01-10面试官:简历上最好不要写Glide,不是问源码那么简单
这次来面试的是一个有着5年工作经验的小伙,截取了一段对话如下:面试官:我看你写到Glide,为什么用Glide,而不选择其它图片加载框架? 小伙:Glide 使用简单,链式调用,很方便,一直用这个。 面试官:有看过它的源码吗?跟其它图片框架相比有哪些优势? 小伙:没有,只是在项目中使用而已~ ...
2024-01-10ShardingSphere源码解析(五)---结果归并
归并引擎看起来还是挺复杂的,ShardingSphere支持的结果归并从功能上分为遍历、排序、分组、分页和聚合5种类型,它们是组合而非互斥的关系。 从结构划分,可分为流式归并、内存归并和装饰者归并。流式归并和内存归并是互斥的,装饰者归并可以在流式归并和内存归并之上做进一步的处理。我们...
2024-01-10阿里拍卖源码架构:从零手写pm-cli脚手架
前言脚手架其实是大多数前端都不陌生的东西,基于前面写过的两篇文章:前端源码架构在拍卖详情页上的探索一张页面引起的项目架构思考(rax+Typescript+hooks)大概呢,就是介绍下,目前我的几个项目页面的代码组织形式。用了几个项目后,发现也挺顺手,遂想着要不搞个 cli 工具,统一下...
2024-01-10柔性数组(Redis源码学习)
柔性数组(Redis源码学习)1. 问题背景在阅读Redis源码中的字符串有如下结构,在sizeof(struct sdshdr)得到结果为8,在后续内存申请和计算中也用到。其实在工作中有遇到过这种 struct结构 + 应用数据的情况,但没有意识到自己使用的是柔性数组,在学习阅读Redis代码中,遇到该方法,就特总结记录之。/* * 类...
2024-01-10