特性
自动包装
如果Extension实现的构造函数入参是Extension,则其称为Extension包装(Extension Wrapper)
自动加载
支持setter注入其他Extension或Spring容器中的Bean
自适应
根据参数适配Extension实现
自动激活
默认是按需激活,也可以自动激活
@SPI
定义Extension
1 |
|
@Adaptive
1 |
|
@Activate
1 |
|
ExtensionLoader
创建Extension实例
getExtension
getAdaptiveExtension
getActivateExtension
ExtensionFactory
Extension依赖注入辅助,可能是依赖其他Extension(SpiExtensionFactory),或者依赖Spring Bean(SpringExtensionFactory)。默认实现AdaptiveExtensionFactory(有@Adaptive注解),由其聚合统筹
实现
1 |
|