林烟夜暖

阅读JDK、框架源码的总结,微服务、RPC、服务治理实践等

Spring xml配置:context:annotation-config与context:component-scan比较

Spring xml配置: context:annotation-config 与 context:component-scan比较 两者区别 <context:annotation-config> 与 <context:component-scan>之间的区别如下: <context:annotation-config>的作用是激活...

sun.misc.Unsafe使用指南

Unsafe简介

sun.misc.Unsafe使用指南 转自 朱小厮的博客 Java是一个安全的开发语言,它阻止开发人员犯很多低级的错误,而大部分的错误都是基于内存管理方面的。如果想搞破坏,可以使用Unsafe这个类。这个类是属于sun.* API中的类,并且它不是J2SE中真正的一部分。 实例化sun.misc.Unsafe 如果尝试创建Unsafe类的实例,基于以下两种原因是不被允许的: ...

Dubbo SPI @Activate注解分析

根据条件激活对应的SPI扩展点

Dubbo SPI @Activate注解分析 Dubbo @Activate注解机制是对Dubbo SPI机制的扩展,该注解用在SPI接口实现的定义上,表明这些SPI扩展接口的实现类被激活或者不被激活的条件,比如Filter接口有很多实现,如AccessLogFilter/GenericImplFilter等,Dubbo 框架在RPC调用过程中可指定具体的条件,与这些SPI接口实现类@A...

Dubbo中的IoC与AOP实现解析

Dubbo SPI扩展点属性注入和Wrapper包装

Dubbo中的IoC与AOP实现解析 IoC解析 Dubbo IoC的过程实现在com.alibaba.dubbo.common.extension.ExtensionLoader#injectExtension方法中,该方法使用在下面的几处地方: 1. createAdaptiveExtension() --> injectExtension((T) getAdaptiveEx...

Dubbo SPI扩展点加载机制深入分析

ServiceLoader源码分析

Dubbo SPI扩展点加载机制深入分析 Dubbo SPI扩展点加载的功能 Dubbo的扩展点加载机制类似于Java的SPI加载机制,但是Java的SPI加载机制在查找具体某个实现的时候,只能通过遍历进行查找并会实例化所有实现类,因此对于实际不需要加载的扩展实现也会实例化,造成一定的内存浪费。Dubbo SPI加载机制可通过扩展点名称进行查找,避免实例化所有实现;同时,增加了对扩展点I...

Java SPI扩展机制实现分析

分析Java SPI机制的实现原理

Java SPI扩展机制实现分析 ​ SPI,即Service Provider Interface ,是JDK内置的服务发现机制。经常在实际工作中会用到java.sql.Driver接口,不同厂商可以根据该接口提供不同的实现,比如mysql和postgresql都有不同的实现提供给用户,而Java的SPI扩展机制则可以为某个接口寻找具体的服务实现。 当服务的提供者提供了某个接口的实现后...