加载中
网络基本协议

OSI网络七层模型 应用层 (定义了用于在网络中进行通信和传输数据的接口 HTTP) 表示层(定义不同的系统中数据的传输格式,编码和解码规范等) 会话层(对多个双向消息的控制和管理, 解除或建...

2017/08/17 16:41
90
Spring的事务管理(2)- 事务切面的解析处理过程

本文简单概述下事务切面的创建及执行过程。 org.springframework.boot spring-boot-autoconfigure 2.1.5.RELEASE

AbstractQueuedSynchronizer的实现 の ReentrantLock 可重入独占锁

总结 CLH锁: 申请加锁的线程依赖于前驱节点的状态进行等待,在前置节点解锁后,当前节点会结束等待并竞争锁。 AQS - AbstractQueuedSynchronizer是大部分Lock的基础实现。底层大量使用 CAS ...

02/05 11:48
57
Disruptor (3)- 生产与消费

生产过程 只是泛指调用 Disruptor 发布事件的开发代码, 与事件(Event)一样,不是被定义的特定类型。 RingBuffer.next() -> MultiProducerSequencer.next() 得到下一个可用事件槽。如果 预分...

@RefreshScope 支持配置热变更

总结 Scope对象实现了接口 BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor, 所以会在容器启动过程的前期阶段就被 AbstractApplicationContext.invokeBeanFactoryPostProc...

jstack线程执行快照分析 - IO阻塞可以是RUNNABLE状态

jstack -l [pid]命令生成java虚拟机当前时刻的线程快照 Dump ,下文展示的是几种常见的输出。 "SimplePauseDetectorThread_2" #47 daemon prio=5 os_prio=0 tid=0x00007fd2c4160000 nid=0x7...

2020/12/07 10:47
969
Thread 竞争 Monitor Lock的状态变化

synchronized 、AQS(AbstractQueuedSynchronizer.compareAndSet*)都会阻塞线程,那 线程的状态是什么,是 WAITING还是 BLOCKED? Monitor Lock Java中用以实现线程之间的互斥与协作的主要手...

2020/12/04 11:59
34
Bean创建(1)- 各种常用配置注解在Bean创建时执行先后顺序

1、 AbstractApplicationContext.refresh()容器启动过程的最后一步:AbstractApplicationContext.finishBeanFactoryInitialization -> DefaultListableBeanFactory.preInstantiateSingletons...

2020/10/26 10:46
362
启动ApplicationContext加载配置(2) - ConfigurationClassPostProcessor (最重要的BeanFactoryPostProcessor) 源码简析 二

ConfigurationClassPostProcessor (最重要的BeanFactoryPostProcessor) 源码简析 一 先解释下启动类“BootstrapApplication”上的注解层级关系: @SpringBootConfiguration @EnableAutoConf...

2020/10/22 11:38
273
Scope模式 - GenericScope

Spring容器中常用的Bean的scope有: singleton(默认)  Spring IOC容器中只会存在一个共享的bean实例,其被存储到单例缓存(singleton cache)中,并且所有针对该bean的后续请求和引用都将...

2020/10/13 16:29
171
@Validated的groups用法

总结而言: 若@Validated的value属性 未指定groups,则 校验DTO上groups指定为javax.validation.groups.Default或 无指定的默认 字段。 指定了groups,则 校验DTO上 groups为当前类及其各上层...

2020/09/16 11:53
1.9K
SpringBoot(3) - 容器启动入口:AbstractApplicationContext.refresh

前文回顾 容器ApplicationContext的顶层结构简析 可知: 由实现 AbstractApplicationContext的具体类来持有继承抽象类org.springframework.beans.factory.support.AbstractAutowireCapableBe...

2020/09/13 16:01
90
SpringBoot - MultipartFile文件上传

Controller的接收有2种方式,接收时的对象都是 org.springframework.web.multipart.support.StandardMultipartHttpServletRequest @PostMapping(value = "/testMultipartFile", consumes = ...

SpringBoot(2) - 启动时默认的父容器

version=2.2.3.RELEASE groupId=org.springframework.cloud artifactId=spring-cloud-context 前文在对ConfigurationClassPostProcessor的源码分析中,执行方法processConfigBeanDefinition...

2020/08/27 14:52
405
Bean创建(2)- 三级缓存解决循环依赖问题

1、如何解决循环依赖 不能解决: 构造器注入循环依赖 、prototype 模式下的 field属性注入循环依赖 能解决:singleton模式下的field属性注入(setter方法注入)循环依赖 singleton 创建Bean的...

RateLimiter源码分析

由 Guava 提供的单机版本基于令牌桶算法 的限流工具。通过限制后面请求的等待时间,来支持一定程度的突发请求(预消费) 两种模式: SmoothBursty(稳定模式): 平滑突发限流。 SmoothWarmingU...

2020/08/19 16:12
136
Linux - 上下文切换

开发高并发应用时, 通常是基于 “降低 用户空间& IO等待 &上下文切换 对CPU资源的消耗 ” 进行思考设计。 对于JVM应用来说, 常见的耗CPU的有: 频繁GC,访问量高时,有可能造成频繁的GC,甚...

2020/06/14 10:37
105
ApplicationContext的设计结构

本文基于以下版本 ,早期版本里SpringBoot的启动类不同 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.1.5.RELEASE...

2020/06/05 10:33
355
启动ApplicationContext加载配置(2) - ConfigurationClassPostProcessor (最重要的BeanFactoryPostProcessor) 源码简析 一

ConfigurationClassPostProcessor (最重要的BeanFactoryPostProcessor) 源码简析 二 前言 首先: @Configuration、@Controller、@Service都继承了@Component。 SpringBoot提供了一系列的组件...

2020/06/01 17:24
386
启动ApplicationContext加载配置(3) - 配置文件“META-INF/spring.factories”的读入

执行至方法: org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames会获取文件 "META-INF/spring.factories" 内配置各类接口的具体实现类全路径名。 eg. "org.sprin...

2020/05/29 15:33
1.9K

没有更多内容

加载失败,请刷新页面

返回顶部
顶部