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-05spring5 源码深度解析----- IOC 之 默认标签解析(上)
本文内容纲要:- 概述- Bean标签的解析及注册- 解析BeanDefinition- bean详细解析过程- 创建用于承载属性的BeanDefinition- 各种属性的解析- 解析meta元素- 解析replaced-method属性- 解析constructor-arg- 解析子元素properties- 解析子元素 qualifier概述接前两篇文章 spring源码深度解析—Spring的整体架构和环...
2024-01-10springboot2+dubbo+vue源码+即时通讯源码
【技术要点】:springboot2+dubbo。netty,mysql,redis,mongodb,fastDFS。完全微服务。代码专业,原创,没有任何加密。一键打包脚本(win脚本),一键启动或者重启所有微服务(shell脚本)【已经实现功能】: ①(聊天功能):单聊,群聊,用户注册(已整合手机短信),好友添加,获取好友(群)列表,...
2024-01-10SpringMVC全局异常处理机制以及源码解析
SpringMVC全局异常处理SpringMVC除了可以做URL映射和请求拦截外,还可以做全局异常的处理。全局异常处理可能我们平时比较少机会接触,但是每个项目都肯定会做这个处理。比如在上一间公司,是前后端分离的架构,所以后端只要有运行时异常就会报“系统异常,请稍后再试”。如果想要走上架构师的话...
2024-01-10Spring框架之AOP源码完全解析
本文内容纲要:Spring框架之AOP源码完全解析Spring框架之AOP源码完全解析Spring可以说是Java企业开发里最重要的技术。Spring两大核心IOC(Inversion of Control控制反转)和AOP(Aspect Oriented Programming面向切面编程)。本文对Spring框架的AOP源码进行分析。AOP面向切面编程是通过预编译方式和运行其动态代理,实现...
2024-01-10javaspringmvcspringcloudspringbootb2b2co2o电子商城源码分布式微服务
核心架构:Spring Cloud、Spring Boot、Mybatis、Redis、vue、小程序、原生APP、前后端分离核心思想:产品微服务、模块化、原子化、持续集成、分布式、集群部署开发模式:代码生成工具、驱动式开发模式、提高开发效率JDK:JDK 1.8+数据库:MYSQL 5.6+源码加求求:1038774626...
2024-01-10【Spring源码分析】AOP源码解析(上篇)
本文内容纲要:【Spring源码分析】AOP源码解析(上篇)前言前面写了六篇文章详细地分析了Spring Bean加载流程,这部分完了之后就要进入一个比较困难的部分了,就是AOP的实现原理分析。为了探究AOP实现原理,首先定义几个类,一个Dao接口:1 public interface Dao {2 3 public void select();4 5 public voi...
2024-01-10Spring源码分析
本文内容纲要:- Spring介绍- 什么是Spring?- 为什么学习Spring?- 好处- 耦合和内聚介绍- Spring体系结构- Spring核心概念介绍- Spring IoC原理分析- 什么是IoC容器?- Spring框架中的工厂有哪些?- 如何创建Web环境中的IoC容器?- 创建方式- 源码分析- 图示- IoC容器如何创建Bean对象?- 源码分...
2024-01-10MybatisSpring源码分析
分析Mybatis如何利用Spring的扩展点集成到框架中的,Mybatis本身的扩展点不再本次分析范畴构建环境上Github上下载https://github.com/mybatis/spring。通过Git的方式试了几次没成功,后来直接Down的zip包,再导入的Idea中的。导入的过程当中会有点慢,要下载不少东西。记得一定要修改Maven的配置文件和本地仓库...
2024-01-10源码解析Spring 数据库异常抽理知识点总结
数据库为:H2如果需要处理特定 SQL 异常,比如 SQL 语句错误,这个时候我们应该怎么办?查看 SQLException 源码,我们可以发现两个重要的方法。SQLException.getErrorCode:返回数据库特定的错误码,由数据库厂商制定,不同厂商错误码不同。如重复主键错误码在 MySQL 中是 1062,而在 Oracle 中却是 1。SQLExceptio...
2024-01-10面试官:简历上最好不要写Glide,不是问源码那么简单
这次来面试的是一个有着5年工作经验的小伙,截取了一段对话如下:面试官:我看你写到Glide,为什么用Glide,而不选择其它图片加载框架? 小伙:Glide 使用简单,链式调用,很方便,一直用这个。 面试官:有看过它的源码吗?跟其它图片框架相比有哪些优势? 小伙:没有,只是在项目中使用而已~ ...
2024-01-10ShardingSphere源码解析(五)---结果归并
归并引擎看起来还是挺复杂的,ShardingSphere支持的结果归并从功能上分为遍历、排序、分组、分页和聚合5种类型,它们是组合而非互斥的关系。 从结构划分,可分为流式归并、内存归并和装饰者归并。流式归并和内存归并是互斥的,装饰者归并可以在流式归并和内存归并之上做进一步的处理。我们...
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-10Elasticsearch7.5.0源码编译
环境及工具JDK12Gradle5.6.2GIT源码及预处理到github将代码clone下来,可以根据自己的需求来获取版本,例如 git checkout v7.5.0提前下载gradle5.6.2 zip文件 从https://services.gradle.org/distributions/gradle-5.6.2-all.zipcopy gradle-5.6.2-all.zip 到C:UsersusernameDocumentsGitHubelasticsearchgradlewrapper 文件...
2024-01-10通过源码角度看看AccessibilityService
简介AccessibilityService的设计初衷是为了辅助有身体缺陷的群体使用Android应用,它的设计贯穿着Android的控件树View, ViewGroup, ViewRootImpl体系。借助于system_server进程的中转,能够注册Accessibility事件的客户端可以具备通过system_server提供的Accessibility服务来实现监听、操作其它应用视图的功能。这个功能十分强...
2024-01-10