- 博客(30)
- 收藏
- 关注
转载 Spring IOC容器启动流程源码解析(四)——初始化单实例bean阶段
目录 1. 引言 2. 初始化bean的入口 3 尝试从当前容器及其父容器的缓存中获取bean 3.1 获取真正的beanName 3.2 尝试从当前容器的缓存中获取bean 3.3 从父容器中查找bean 3.4 解析bean的依赖 ...
2018-12-24 00:18:00
306
转载 SpringBoot中使用LoadTimeWeaving技术实现AOP功能
目录 1. 关于LoadTimeWeaving 1.1 LTW与不同的切面织入时机 1.2 JDK实现LTW的原理 1.3 如何在Spring中实现LTW 2. Springboot中使用LTW实现AOP的例子 3. 参考资料 ...
2018-12-20 17:14:00
814
转载 gRPC初探——概念介绍以及如何构建一个简单的gRPC服务
目录 引言 1. gRPC简介 2. 使用Protocol Buffers进行服务定义 2.1 定义消息 2.2 定义服务接口 3.构建简单的gRPC服务 3.1 编写proto文件,定义消息和接口 3.2...
2018-12-03 17:28:00
607
转载 分布式系统(微服务架构)的一致性和幂等性问题相关概念解析
目录 前言 1. 分布式系统的数据一致性 1.1 分布式存储系统中的一致性问题 1.2 微服务应用的分布式一致性问题 1.3 对于一致性的正确理解 2.分布式一致性模型 3. 追求强一致性的约束——CAP定理 ...
2018-11-26 23:34:00
420
转载 数据库事务的概念及其实现原理
目录 前言 1. 认识事务 1.1 为什么需要数据库事务 1.2 什么是数据库事务 1.3 事务如何解决问题 1.4 事务的ACID特性以及实现原理概述 2.并发异常与并发控制技术 2.1 常见的并发异常...
2018-11-22 16:25:00
623
转载 深入理解Spring的容器内事件发布监听机制
目录 1. 什么是事件监听机制 2. JDK中对事件监听机制的支持 2.1 基于JDK实现对任务执行结果的监听 3.Spring容器对事件监听机制的支持 3.1 基于Spring实现对任务执行结果的监听 4.Spring...
2018-11-17 12:22:00
273
转载 解耦关联对象——观察者模式详解
1. 观察者模式简介在软件开发中,观察者模式是使用频率最高的设计模式之一,如果你做过web开发,对它应该更不会陌生,因为典型的MVC架构就是对观察者模式的一种延伸。在软件开发中经常会碰到这种困境:系统由若干个相互协作的类构成,类之间常有一对多的依赖关系,当被依赖对象的状态变化时,其他所有依赖对象都要发生改变。以MVC为例,模型(Model)对象封装了数据,视图(View)对象对数据进行...
2018-10-30 11:51:00
265
转载 设计模式中的多态——策略模式详解
目录 1. 关于策略模式 2. 策略模式详解 2.1 策略模式定义 2.2 策略模式的UML类图 3.策略模式的优点 3.1 一个使用策略模式的例子 3.2 与其他实现方式的对比 3.3 使用策略模式的优点...
2018-10-16 11:14:00
292
转载 Spring IOC容器启动流程源码解析(一)——容器概念详解及源码初探
目录 1. 前言 1.1 IOC容器到底是什么 1.2 BeanFactory和ApplicationContext的联系以及区别 1.3 解读IOC容器启动流程的意义 1.4 如何有效的阅读源码 2. 初探IOC容器启动源码 ...
2018-10-09 15:28:00
276
转载 并发包下常见的同步工具类详解(CountDownLatch,CyclicBarrier,Semaphore)
目录 1. 前言 2. 闭锁CountDownLatch 2.1 CountDownLatch功能简介 2.2 使用CountDownLatch 2.3 CountDownLatch原理浅析 3.循环屏障CyclicBarrier ...
2018-09-25 14:19:00
300
转载 Zookeeper的基本概念和重要特性
目录 1. 什么是Zookeeper 2. Zookeeper集群角色 3. Zookeeper的数据模型 3.1 Znode的类型 3.2 Znode的结构 4. Zookeeper的事件监听机制 5. Zookeepe...
2018-08-21 20:10:00
321
转载 基于双向链表实现无锁队列的正确姿势(修正之前博客中的错误)
目录 1. 前言 2. 基于双向链表实现的无锁队列 2.1 入队方法 2.2 出队方法 3. 性能测试 4.总结 1. 前言如果你认真看过我前几天写的这篇博客自己动手构建无锁的并发容器(栈和队列)的队列部分...
2018-08-18 14:32:00
357
转载 自己动手构建无锁的并发容器(续篇)——基于单向链表实现的无锁队列
目录 1. 前言 2 队列内部结构 2.1 结点的定义 2.2 为什么结点内部的next指针需要原子的更新 2.3 队列的内部成员变量 3. 基于CAS算法和单向链表构建无锁的并发队列 3.1 出队方法 3...
2018-08-15 11:01:00
229
转载 自己动手构建无锁的并发容器(栈和队列)
目录 1.前言 2. 基于CAS算法构建无锁的并发栈 2.1 数组实现 2.2 链表实现 2.3 性能测试 3. 基于CAS算法构建无锁的并发队列 3.1 入队方法 3.2 出队方法 3.3...
2018-08-11 09:05:00
305
转载 从源码角度彻底理解ReentrantLock(重入锁)
目录 1.前言 2.AbstractQueuedSynchronizer介绍 2.1 AQS是构建同步组件的基础 2.2 AQS的内部结构(ReentrantLock的语境下) 3 非公平模式加锁流程 3.1加锁流程真正意义上的入口 ...
2018-08-07 08:51:00
757
转载 java基础强化——深入理解反射
目录 1.从Spring容器的核心谈起 2. 反射技术初探 2.1 什么是反射技术 2.2 类结构信息和java对象的映射 3 Class对象的获取及需要注意的地方 4. 运行时反射获取类的结构信息 5. 运行时反射获取泛...
2018-07-28 10:05:00
154
转载 java基础强化——深入理解java注解(附简单ORM功能实现)
目录 1.什么是注解 2. 注解的结构以及如何在运行时读取注解 2.1 注解的组成 2.2 注解的类层级结构 2.3 如何在运行时获得注解信息 3.几种元注解介绍 3.1 @Retention 3.2 @T...
2018-07-23 21:30:00
163
转载 ReentrantLock(重入锁)功能详解和应用演示
目录 1. ReentrantLock简介 2. ReentrantLock和synchronized的相同点 2.1 ReentrantLock是独占锁且可重入的 3. ReentrantLock相比synchronized的额外功能 3.1 Reen...
2018-07-19 23:11:00
616
转载 阻塞和唤醒线程——LockSupport功能简介及原理浅析
目录 1.LockSupport功能简介 1.1 使用wait,notify阻塞唤醒线程 1.2 使用LockSupport阻塞唤醒线程 2. LockSupport的其他特色 2.1 可以先唤醒线程再阻塞线程 2.2 先唤醒线程两次再阻...
2018-07-18 12:14:00
301
转载 ThreadLocal原理深入解析
目录 1. 从一次项目经历说起 2. ThreadLocal源码解析 2.1 set方法源码解析 2.2 get方法源码解析 2.3 ThreadLocal源码总结 3. ThreadLocalMap详解 3.1 Thre...
2018-07-16 22:58:00
151
转载 无锁的同步策略——CAS操作详解
目录 1. 从乐观锁和悲观锁谈起 2. CAS详解 2.1 CAS指令 2.3 Java中的CAS指令 2.4 CAS结合失败重试机制进行并发控制 3. CAS操作的优势和劣势 3.1 CAS相比独占锁的优势 ...
2018-07-14 18:58:00
245
转载 简单的互斥同步方式——synchronized关键字详解
目录 1. 关于synchronized关键字 2. synchronized的原理和实现细节 2.1 synchronized可以用在那些地方 2.2 synchronized是如何实现线程互斥访问的 2.3 对象锁的monitor信息存储在哪 2.4 ...
2018-07-13 21:59:00
335
转载 轻量级的同步机制——volatile语义详解(可见性保证+禁止指令重排)
目录 1.关于volatile 2.语义一:内存可见性 2.1 一个例子 2.2 java的内存模型(JMM) 2.3 happens-before规则 2.4 volatile解决内存可见性问题的原理 3. 语义二:禁止...
2018-07-12 23:13:00
169
转载 控制对对象的访问——代理模式详解(静态代理和动态代理的区别以及联系)
目录 1. 前言 2. 代理模式详解 2.1 定义 2.2 普通代理模式类结构 2.3 普通代理模式的实现(静态代理) 3. JDK动态代理详解 3.1 JDK动态代理实现 3.2 方法调用流程图 ...
2018-07-09 18:19:00
237
转载 原创不如山寨——原型模式详解
目录 1. 前言 2. 原型模式详解 2.1 原型模式定义 2.2 原型模式类结构 2.3 原型模式的代码实现 3. 关于对象拷贝的深拷贝和浅拷贝问题 3.1 什么是深拷贝和浅拷贝 3.2 Java的Clo...
2018-07-08 18:59:00
126
转载 优雅的实现接口转换——适配器模式详解
目录 1. 前言 2. 适配器模式详解 2.1 适配器模式的定义 2.2 适配器模式的类结构 2.3 适配器模式的实现 2.4 适配器模式的使用场景 2.5 类适配器 3. 总结 ...
2018-07-07 23:12:00
398
转载 创建和使用解耦——工厂模式详解(简单工厂+工厂方法+抽象工厂)
目录 1.前言 2. 工厂方法模式 2.1工厂方法模式的定义 2.2 工厂方法的类结构 2.3工厂方法模式实现 3. 简单工厂模式 4. 抽象工厂模式 4.1 抽象工厂模式的定义 4.2 抽...
2018-07-06 23:28:00
185
转载 最简单的设计模式——单例模式
目录 1. 前言 2. 单例模式详解 2.1 单例模式定义 2.2 单例模式类结构 2.3 单例模式实现 1. 前言单例模式可以说是最简单也是最常见的设计模式了,有些语言比如scala甚至在语言层面对其进行了支持。单例是指...
2018-07-05 22:10:00
181
转载 封装不变,扩展可变——模版方法模式
1. 前言在平时的项目开发中,我们常会碰到这样的需求。整个业务流程可以由若干操作完成,其中某些操作对所有客户都一样,是不变的,而有些操作确需要由客户端决定,是经常会改变的。比如事务操作,流程可以定义为:1.开启事务2.对数据库进行操作3.成功则提交事务否则回滚在这个事务操作流程中,1和3是不变的,而2需要由客户端决定,对数据库进行什么样的操作。又比如常见的jdbc操作,流程可以...
2018-07-05 14:55:00
183
转载 关于设计模式
1. 什么是设计模式首先,设计模式是针对软件开发过程中可能存在的问题的一系列解决方案,常见的有23种。它是开发人员经过无数工程实践总结出来的一套模版,是特定情境下针对特定问题的最佳实践。其次,设计模式也代表了一种设计思想,它构建了系统中不同角色的交互模型,便于我们直观把握和分析系统的主要矛盾。2. 我需要学习设计模式吗对于设计模式,相信不少人曾今和我一样有困惑:这么多...
2018-06-29 19:16:00
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人