public class ExtensionLoader<T> extends Object
一个可扩展接口类,对应一个加载器
| 限定符和类型 | 字段和说明 |
|---|---|
protected ConcurrentHashMap<String,ExtensionClass<T>> |
all
全部的加载的实现类 {"alias":ExtensionClass}
|
protected Extensible |
extensible
扩展点是否单例
|
protected ConcurrentHashMap<String,T> |
factory
如果是单例,那么factory不为空
|
protected Class<T> |
interfaceClass
当前加载的接口类名
|
protected String |
interfaceName
接口名字
|
protected ExtensionLoaderListener<T> |
listener
加载监听器
|
| 限定符 | 构造器和说明 |
|---|---|
protected |
ExtensionLoader(Class<T> interfaceClass)
构造函数(自动加载)
|
protected |
ExtensionLoader(Class<T> interfaceClass,
boolean autoLoad,
ExtensionLoaderListener<T> listener)
构造函数(主要测试用)
|
|
ExtensionLoader(Class<T> interfaceClass,
ExtensionLoaderListener<T> listener)
构造函数(自动加载)
|
| 限定符和类型 | 方法和说明 |
|---|---|
ConcurrentHashMap<String,ExtensionClass<T>> |
getAllExtensions()
返回全部扩展类
|
T |
getExtension(String alias)
得到实例
|
T |
getExtension(String alias,
Class[] argTypes,
Object[] args)
得到实例
|
ExtensionClass<T> |
getExtensionClass(String alias)
根据服务别名查找扩展类
|
protected void |
loadFromClassLoader(ClassLoader classLoader,
String fullFileName) |
protected void |
loadFromFile(String path) |
protected String[] |
parseAliasAndClassName(String line) |
protected void |
readLine(URL url,
String line) |
protected final String interfaceName
protected final Extensible extensible
protected final ConcurrentHashMap<String,ExtensionClass<T>> all
protected final ConcurrentHashMap<String,T> factory
protected final ExtensionLoaderListener<T> listener
public ExtensionLoader(Class<T> interfaceClass, ExtensionLoaderListener<T> listener)
interfaceClass - 接口类listener - 加载后的监听器protected ExtensionLoader(Class<T> interfaceClass)
interfaceClass - 接口类protected ExtensionLoader(Class<T> interfaceClass, boolean autoLoad, ExtensionLoaderListener<T> listener)
interfaceClass - 接口类autoLoad - 是否自动开始加载listener - 扩展加载监听器protected void loadFromFile(String path)
path - path必须以/结尾protected void loadFromClassLoader(ClassLoader classLoader, String fullFileName) throws Throwable
Throwablepublic ConcurrentHashMap<String,ExtensionClass<T>> getAllExtensions()
public ExtensionClass<T> getExtensionClass(String alias)
alias - 扩展别名Copyright © 2008–2018 The Ant Financial. All rights reserved.