java
奈文摩尔_NerverMore
热爱技术,喜欢写代码
展开
-
spring的配置加载原理及源码解读
spring的配置是怎样加载的,加载配置的同时都干了什么,配置的先加载后加载造成的影响 1、spring 配置加载 (图1.1.1) spring的配置信息是在spring refresh方法时候在创建beanFactory的时候调用的。 (图1.1.2) (图1.1.3) (图1.1.3.1) 从源码看出spring是按照顺序加载文件中的bean,也就是按照配置文件的原创 2017-01-11 18:42:39 · 6346 阅读 · 1 评论 -
dubbo--invoker部分类图
**dubbo框架源码分析之invoker**dubbo invoker是真正的执行部分,我们使用时用到的快速失败,限流,集群模式下的负载均衡等都是在这部分实现的。从中能看出设计者和研发者对于设计模式的深刻理解和非常出色的驾驭能力。巧妙的使用了装饰,代理,责任链,策略,工厂等模式。原创 2017-08-17 21:46:55 · 1125 阅读 · 1 评论 -
dubbo--远程调用数据交换层客户端类图
dubbo源码分析之远程调用数据交换层客户端类图**这一篇是描述dubbo消费端实现远程调用数据交换的类图。是上一篇服务端类图的兄弟篇。原创 2017-08-17 22:08:27 · 515 阅读 · 0 评论 -
dubbo--远程调用数据交换层服务端类图
**dubbo源码分析之远程调用数据交换层服务端类图**远程调用(remoting)层是dubbo的进行,数据传输,自定义协议处理,编解码,心跳检测,自动重连等机制的实现层。是dubbo核心层,提现了设计和研发人员对网络编程深厚功底。 由于篇幅的问题这个类图中只针对dubboProtocol和netty通信框架部分的类图也是最常用,官方推荐,性能最好的。后续会继续丰富。原创 2017-08-17 22:02:23 · 709 阅读 · 0 评论 -
AbstractQueuedSynchronizer(AQS)源码解析-续
AQS竞争时内部核心资源,线程队列的变化原创 2017-07-23 22:50:10 · 419 阅读 · 0 评论 -
AbstractQueuedSynchronizer(AQS)源码解析上
AQS独占锁(1)acqurie (2)release原创 2017-07-18 21:22:27 · 330 阅读 · 0 评论 -
AbstractQueuedSynchronizer(AQS)源码解析下
AQS共享锁是AQS更重要的一部分,如Sempahore,CountDownLatch都是基于AQS共享锁实现的。下面就看具体的实现逻辑。 (1)tryAcquireShare (2)releaseShare原创 2017-07-21 11:44:19 · 297 阅读 · 0 评论 -
ThreadPoolExecutor源码详解
最近在整理java concurrent包中的源码总结并把原来的画图完善了下。发现每次翻看的感受都不一样,真是学无止境啊,分享出来大家共同学习吧。 图画的挺乱,笔者想画的丰富详细些特别是一些循环,递归,自旋。也希望大家认真看。希望大家多喷,多讨论,共同提高。 ThreadPoolExecuotr.execute原图地址:这段画图是jdk1.6版本中ThreadPoolExecutor的execu原创 2017-07-17 16:50:40 · 376 阅读 · 0 评论 -
spring事务建言者创建类图
从图中看出,spring 建言者有一个子类PointcutAdvisor是一个持有pointCut的建言者。也就是这个建言者可以针对不同的场景进行生效。 PointCut是根据类和方法拦截的一个拦截配置定义类。 AbstractBeanFactoryPointcutAdvisor 是PointcutAdvisor的工厂模板类负责提供建言,pointCut BeanFactoryTransact原创 2017-06-02 18:21:05 · 443 阅读 · 0 评论 -
spring代理工厂类图
最近在整理和复习spring事务控制,顺便复习了下spring aop,也顺便调整下博客的风格。 这个系列包括 (1)spring 代理工厂 (2)spring 代理的类图 (3)spring事务的配置 (4)spring事务拦截器实现 本文中希望达到的目标: 通过类图展示出spring代理工厂是怎么实现的、主要方法都有哪些,都依赖什么核心类,这些类的职责是什么及使用场景,希望能从类图原创 2017-06-02 17:48:10 · 1018 阅读 · 0 评论 -
spring+mybatis缓存的问题及源码
最近和金业探讨过mybatis缓存的问题,供大家查阅也正好记录下。 文档中分为三个部分:结论理解,mybatis缓存的源码解析,spring+mybaits的整合及对mybatis的代理以及对mybatis缓存的影响 1、结论在这里 【无事务前提,dao每个sql操作都是一个sqlSession实例在进行操作不可能共用一级缓存。在有事务前提下,同个事务内使用一个sqlSession实例所以这个原创 2017-05-08 16:10:00 · 3165 阅读 · 2 评论 -
spring容器及bean加载机制源码解读
前言:这是本人第一个博客,早就想记录些总结和理解,可一直不知道从哪开始,最近正好在解决一个spring的问题,正好这个问题涉及到了spring的一些相关基础,整理一下就从这部分开始了。 欢迎所有阅读者和爱好者批评从各个方面(特别是文档方面和技术方便)批评,指正。互相交流学习。 原想这部分单写一个文章可无奈文笔有限,先放在这吧。spring的容器加载机制分为提前加载和运行时动态加载,本文通过源码解原创 2017-01-11 12:00:11 · 13799 阅读 · 0 评论 -
spring代理对象的生成及运行机制源码解读
spring有非常多的地方都是使用代理的,但是这些什么使用代理,使用哪种代理,代理是在什么时候创建的,怎么运行起效的。这些问题都会是下面的源码中实现的。 1、代理是怎么创建的,什么时候创建的,为什么创建 spring的代理创建类都是AbstractAutoProxyCreator的子类,这个抽象类同时又是InstantiationAwareBeanPostProcessor的实现类。由于它是Be原创 2017-01-11 16:51:19 · 5683 阅读 · 1 评论 -
dubbo-服务消费端类图
dubbo框架源码分析之服务消费者 dubbo提供了服务提供者和消费者两种角色,他俩是相辅相成的。而且对于消费者而言也有复杂的处理逻辑。特别是集群模式下和特殊场景下如快速失败,重试啊等等。由于消费者和提供者都是invoker的一种具体示例。具体可看上文invoker类图。 本文只侧重描述消费者结合spring的配置及配置模式类图。 原图地址原创 2017-08-17 22:25:02 · 660 阅读 · 0 评论