$ParseProvider简介 此服务提供者也是angularjs中用的比较多的,下面我们来详细的说下这个provider. function $ParseProvider() { var cache = {}; var $parseOptions = { csp: false, unwrapPromises: false, logPromiseWarnings: true }; this.unwrapPromises = function(value) { if (isDefined(val…
源码解析 在解析代码之前,首先要了解extend函数要解决什么问题,以及传入不同的参数,会达到怎样的效果.extend函数内部处理传入的不同参数,返回处理后的对象. extend函数用来扩展对象,增加属性和方法. 传入的参数有以下形式: 详细参见:解析jQuery中extend方法--用法<一> 可以传入N多个参数,将src1,src2..srcN的每一项合并到dest中 extend(dest,src1,src2...srcN); 只传入一个对象时,$.extend(),给jQuery扩展静…
之前说完了链码的安装过程,接下来说一下链码的实例化过程好了,再然后是链码的调用过程.其实这几个过程内容已经很相似了,都是涉及到Proposal,不过整体流程还是要说一下的. 同样,切入点仍然是fabric/peer/main.go文件中的main()方法: #这一句定义了关于通过Peer节点操作链码的命令 mainCmd.AddCommand(chaincode.Cmd(nil)) 然后是fabric/peer/chaincode/chaincode.go文件中的Cmd()方法,这里则是具体的操…
[Java并发] AQS抽象队列同步器源码解析--独占锁获取过程 上一篇已经讲解了AQS独占锁的获取过程,接下来就是对AQS独占锁的释放过程进行详细的分析说明,废话不多说,直接进入正文... 锁释放入口release(int arg) 首先进行说明下,能够正常执行到release方法这里来的线程都是获取到锁的,从下面代码可以看出释放锁步骤只有两个重要的方法:tryRelease 与unparkSuccessor ,tryRelease尝试释放锁,unparkSuccessor唤醒后继节点所封装的…
angularJS加载进来后,会有一个立即执行函数调用,在源代码的最下面是angular初始化的地方.代码展示: bindJQuery(); publishExternalAPI(angular); jqLite(document).ready(function() { angularInit(document, bootstrap); }); bindJQuery方法的作用是:检查你的主页面是否引用了jquery,没有的话,就用angular本身自带的JQLite,否则使用你引用的jquery…
RootScopeProvider简介 RootScopeProvider是angularjs里面比较活跃的一个provider.它主要用来生成实例rootScope,它代表angularjs应用的根作用域.我们可以把它看成MVVM模式中的VM. 源代码如下: function $RootScopeProvider(){ var TTL = 10; var $rootScopeMinErr = minErr('$rootScope'); var lastDirtyWatch = null; th…
关于IOC容器的初始化,结合之前SpringMVC的demo,对其过程进行一个相对详细的梳理,主要分为几个部分: 一.IOC的初始化过程,结合代码和debug过程重点说明 1. 为什么要debug? 答:直接自己从源码看第一遍,会有一个初步的认识:但是看完之后,会因为没有实际走一遍执行而无法验证自己认知的过程:另外就是:因为基于接口本身会有多个实现,因此在很多情况下,通过Ctrl+B直接会进入到接口中,但是方法的实现体为空,通过Ctrl+Alt+B查看具体实现,会出现多个类都实现了这个方法,具体…
Spring在BeanFactory基础上提供了一些列具体容器的实现,其中AnnotationConfigApplicationContext是一个用来管理注解bean的容器,从AnnotationConfigApplicationContext的实现结构图中可以看出: AnnotationConfigApplicationContext继承GenericApplicationContext这个通用应用上下文,GenericApplicationContext内部定义了一个DefaultList…
想写点东西记录一下最近看的一些Fabric源码,本文使用的是fabric1.4的版本,所以对于其他版本的fabric,内容可能会有所不同. 本文想针对Fabric中链码容器的启动过程进行源码的解析.这里的链码指的是用户链码不是系统链码,顺便回顾一下系统链码: lscc(Life Cycle System ChainCode)生命周期系统链码 cscc(Configuration System ChainCode)配置系统链码 escc(Endorser System ChainCode)背书系统…
本文通过阅读Netty源码,解析Netty服务端启动过程. 源码分析基于Netty 4.1 Netty是一个高性能的网络通信框架,支持NIO,OIO等多种IO模式.通常,我们都是使用NIO模式,该系列文章也是解析Netty下NIO模式的实现. 首先,看一个NIO网络通信示意图 Netty中NIO网络通信过程在此基础上实现,下面来看一下具体实现. Channel 首先,看一下Netty中的通道Channel,它代表了一个能完成IO操作的通道,提供read, write, connect, bind…