Axios 源码解析根据package.json配置中的main主入口,可以看到入口文件的是index.jsindex.jsmodule.exports = require('./lib/axios');进入入口文件,可以看出axios的内部逻辑均在lib文件夹下。lib/axios.js生成axios实例对象。function createInstance(defaultConfig) {
转载
2023-07-04 13:28:54
264阅读
SpringMVC的工作原理图:SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherSe
转载
2023-07-05 15:34:08
77阅读
作者:雨点的名字Redisson实现分布式锁有关Redisson作为实现分布式锁,总的分3大模块来讲。1、Redisson实现分布式锁原理
2、Redisson实现分布式锁的源码解析
3、Redisson实现分布式锁的项目代码(可以用于实际项目中)本文只介绍Redisson如何实现分布式锁的原理。一、高效分布式锁当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高
转载
2023-08-26 14:07:30
57阅读
下面,我们就从一个最简单的登录例子入手,以对Struts的主要部分有一些直观而清晰的认识。这个例子功能非常简单,假设有一个名为lhb的用户,其密码是awave,程序要完成的任务是,呈现一个登录界面给用户,如果用户输入的名称和密码都正确返回一个欢迎页面给用户,否则,就返回登录页面要求用户重新登录并显示相应的出错信息。这个例子在我们讲述Struts的
一、dubbo定义1、dubbo官方定义:DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案2、主要实现逻辑方案:使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和spring框架无缝集成。是一个分布式服务框架,以及SOA治理方案。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。 3、主要目
1. yarn的前世今生yarn为什么会诞生?Yarn干什么用的?在Hadoop1.x版本中并没有yarn,直到Hadoop2.x版本才有yarn的诞生。首先,在Hadoop1.0版本,存在的最大的问题就是资源管理问题!!!随着技术的发展,Hadoop集群只使用mapreduce一个计算框架,出现了很多计算框架(例如:spark,mars等一系列计算框架)人们更希望有一套合理的管理机制,来控制整个
转载
2023-08-31 14:33:04
40阅读
一、Duboo基本概念解释Dubbo是一种分布式服务框架。 Webservice也是一种服务框架,但是webservice并不是分布式的服务框架,他需要结合F5实现负载均衡。因此,dubbo除了可以提供服务之外,还可以实现软负载均衡。它还提供了两个功能Monitor 监控中心和调用中心。这两个是可选的,需要单独配置。Dubbo的计数架构图如下:我们解释以下这个架构图:Consumer服务消费者,P
在阅读本文之前,请先阅读Flink 原理与实现:Window机制,这篇文章从用户的角度,对Window做了比较详细的分析,而本文主要是从Flink框架的实现层面,对Window做另一个角度的分析。首先看一个比较简单的情况,假设我们在一个KeyedStream上做了一个10秒钟的tumbling processing time window,也就是说,每隔10秒钟窗口会触发一次,即: dat...
转载
2021-06-10 19:51:56
621阅读
在阅读本文之前,请先阅读Flink 原理与实现:Window机制,这篇文章从用户的角度,对Window做了比较详细的分析,而本文主要是从Flink框架的实现层面,对Window做另一个角度的分析。首先看一个比较简单的情况,假设我们在一个KeyedStream上做了一个10秒钟的tumbling processing time window,也就是说,每隔10秒钟窗口会触发一次,即: dat...
转载
2021-06-10 20:25:39
568阅读
kvo(key value observe)用于一个对象监听另外一个对象的属性的改变。kvo实现原理kvo是基于runtime实现的,当一个对象第一次被观察的时候,系统会在运行时动态的为该对象所属的类添加一个派生类,然后将对象的isa指针指向这个派生类,该对象就变成了派生类的对象,在这个派生类中重写基类中所有被观察的属性的setter方法,然后由这个派生类中的setter方法负责通知属性的改变状况
转载
2023-08-06 12:14:19
47阅读
本节只讲结论,不做验证,后面会专门拉代码讲解验证。Spring的核心是IOC和AOP,大概有这么几个核心知识点:Bean的生命周期底层原理依赖注入底层原理初始化底层原理推断构造方法底层原理AOP底层原理Spring事务底层原理Spring入门代码:ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
IOC的基础
下面我们从IOC/AOP开始,它们是Spring平台实现的核心部分;虽然,我们一开始大多只是在这个层面上,做一些配置和外部特性的使用工 作,但对这两个核心模块工作原理和运作机制的理解,对深入理解Spring平台,却是至关重要的;因为,它们同时也是Spring其他模块实现的基础。从 Spring要做到的目标,也就是从简化Java EE开发的出发点来看,简单的来说,它是通过对P
AOP编程也就是面向切面编程,作为是对面向对象编程的一个重要补充,其应用场景活跃在我们日常开发的角角落落,比如对数据的处理,系统日志的记录,总之,需要在某些业务功能添加一些与业务本身又无关的功能时,你首先想到的应该是AOP。 在实际点的例子,作为java开发的首选框架--spr
对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。对任意单个volatile变量的读/写具有原子性,但类似于volatile++这种复合操作不具有原子性。
原创
2017-12-30 22:45:56
6184阅读
ReentrantLock实现原理使用synchronized来做同步处理时,锁的获取和释放都是隐式的,实现的原理是通过编译后加上不同的机器指令来实现。而ReentrantLock就是一个普通的类,它是基于AQS(AbstractQueuedSynchronizer)来实现的。是一个重入锁:一个线程获得了锁之后仍然可以反复的加锁,不会出现自己阻塞自己的情况。AQS是Java并发包里实现锁、同步的一
转载
2019-02-03 11:34:36
828阅读
用户程序中的睡眠: sleep() usleep() nanosleep() sleep()和nanosleep()都是使进程睡眠一段时间后被唤醒,但是二者的实现完全不同。Linux中并没有提供系统调用sleep(),sleep()是在库函数中实现的,它是通过调用alarm()来设定报警时间,调用s
转载
2017-03-02 21:04:00
320阅读
2评论
自jdk1.5开始,Java开始提供ScheduledThreadPoolExecutor类来支持周期性任务的调度,在这之前,这些工作需要依靠Timer/TimerTask或者其它第三方工具来完成。但Timer有...
转载
2014-03-18 17:41:00
54阅读
2评论
转载
2022-04-02 18:01:30
73阅读
Condition 实现原理
原创
2022-06-23 09:43:06
66阅读
Ajax:Asynchronous javascript and xml,实现了客户端与服务器进行数据交流过程。使用技术的好处是:不用页面刷新,并且在等待页面传输数据的同时可以进行其他操作。 这就是异步调用的很好体现。首先得了解什么是异步和同步的概念。 举个例子:
原创
2023-05-05 18:42:03
53阅读