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-05Spring框架之beans源码完全解析
本文内容纲要:Spring框架之beans源码完全解析**导读:**Spring可以说是Java企业开发里最重要的技术。而Spring两大核心IOC(Inversion of Control控制反转)和AOP(Aspect Oriented Programming面向切面编程)其中又以IOC最为核心。IOC容器是Spring的核心模块,Spring提供了两种类型的容器,一个是BeanFactory,一个是ApplicationC...
2024-01-10springbeans源码解读之ioc容器之始祖DefaultListableBeanFactory
spring Ioc容器的实现,从根源上是beanfactory,但真正可以作为一个可以独立使用的ioc容器还是DefaultListableBeanFactory,因此可以这么说,DefaultListableBeanFactory 是整个spring ioc的始祖,研究透它的前生今世对我们理解spring ioc的概念有着重要的作用。1. DefaultListableBeanFactory的作用:默认实现了ListableBeanFactory和B...
2024-01-10Spring源码组合注解/合并注解的问题
我想,每个开发人员都应该有过这样的经历:在编写某个类或接口的时候,需要声明Spring本身的注解(@Controller、@Service,@Dao),又需要声明自己公司编写的注解来完成公司的独特业务,然后就悲剧了,一个类上边声明了五六个注解,茫茫然不知所云。注解本身是好的,它可以替我们完成一些事情。但...
2024-01-10spring5 源码深度解析----- 创建AOP代理之获取增强器
本文内容纲要:- 获取增强器- 普通增强器的获取- 寻找匹配的增强器在上一篇的博文中我们讲解了通过自定义配置完成了对AnnotationAwareAspectJAutoProxyCreator类型的自动注册,那么这个类到底做了什么工作来完成AOP的操作呢?首先我们看看AnnotationAwareAspectJAutoProxyCreator的层次结构,如下图所示:从上图...
2024-01-10ZipKin样本取值源码探析
在zipkin客户端采样率是通过Sampler类来完全控制,代码如下,package com.github.kristofa.brave;public abstract class Sampler { public static final Sampler ALWAYS_SAMPLE = new Sampler() { @Override public boolean isSampled(long traceId) { return true; } @Override p...
2024-01-10Spring源码阅读笔记
本文内容纲要:Spring源码阅读笔记前言 作为一个Java开发者,工作了几年后,越发觉力有点不从心了,技术的世界实在是太过于辽阔了,接触的东西越多,越感到前所未有的恐慌。每天捣鼓这个捣鼓那个,结果回过头来,才发现这个也不通,那个也不精。就连我吃饭的家伙Java,现在想想,其实我...
2024-01-10springioc源码分析
Spring源码解析先看看我们的启动代码ClassPathXmlApplicationContext cp = new ClassPathXmlApplicationContext("applicationContext.xml");TextImpl text = (TextImpl) cp.getBean("tt");text.print();1.ClassPathXmlApplicationContext点击ClassPathXmlApplicationContext看看创建对象时发生了什么public...
2024-01-10spring源码学习之路---深入AOP(终)
本文内容纲要:spring源码学习之路---深入AOP(终)作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可。上一章和各位一起看了一下springAOP的工作流程,当我们给出AOP相关的配置以后,...
2024-01-10Spring源码深度解析
本文内容纲要:Spring源码深度解析Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益。Spring优点:低侵入式设计...
2024-01-10Spring5源码分析容器刷新配置类的嵌套类
上一篇:Spring5 源码分析-容器刷新-解析配置类-主流程功能说明在解析给定的配置类时,Spring允许它的嵌套类来配置容器相关行为,可以将修饰到配置类上的所有注解都放到嵌套类上面,启到同样的效果举例demo示例:属性文件:au1.propertiesname=HaViage=33 au.propertiesname=Messiage=30测试类:public class...
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