类 ExtensionLoader<T>
- java.lang.Object
-
- org.apache.dubbo.common.extension.ExtensionLoader<T>
-
public class ExtensionLoader<T> extends Object
ApplicationModel,DubboBootstrapand this class are at present designed to be singleton or static (by itself totally static or uses some static fields). So the instances returned from them are of process or classloader scope. If you want to support multiple dubbo servers in a single process, you may need to refactor these three classes.Load dubbo extensions
- auto inject dependency extension
- auto wrap extension in wrapper
- default extension is an adaptive instance
- 另请参阅:
- Service Provider in Java 5,
SPI,Adaptive,Activate
-
-
方法概要
所有方法 静态方法 实例方法 具体方法 已过时的方法 修饰符和类型 方法 说明 voidaddExtension(String name, Class<?> clazz)Register new extension via APIstatic voiddestroyAll()已过时。List<T>getActivateExtension(URL url, String key)This is equivalent togetActivateExtension(url, key, null)List<T>getActivateExtension(URL url, String[] values)This is equivalent togetActivateExtension(url, values, null)List<T>getActivateExtension(URL url, String[] values, String group)Get activate extensions.List<T>getActivateExtension(URL url, String key, String group)This is equivalent togetActivateExtension(url, url.getParameter(key).split(","), null)TgetAdaptiveExtension()TgetDefaultExtension()Return default extension, returnnullif it's not configured.StringgetDefaultExtensionName()Return default extension name, returnnullif not configured.TgetExtension(String name)Find the extension with the given name.TgetExtension(String name, boolean wrap)static <T> ExtensionLoader<T>getExtensionLoader(Class<T> type)StringgetExtensionName(Class<?> extensionClass)StringgetExtensionName(T extensionInstance)ObjectgetLoadedAdaptiveExtensionInstances()TgetLoadedExtension(String name)Get extension's instance.List<T>getLoadedExtensionInstances()Set<String>getLoadedExtensions()Return the list of extensions which are already loaded.static List<LoadingStrategy>getLoadingStrategies()Get allLoading StrategiesTgetOrDefaultExtension(String name)Get the extension by specified name if found, orreturns the default oneSet<T>getSupportedExtensionInstances()Set<String>getSupportedExtensions()booleanhasExtension(String name)voidreplaceExtension(String name, Class<?> clazz)已过时。not recommended any longer, and use only when teststatic voidresetExtensionLoader(Class type)已过时。static voidsetLoadingStrategies(LoadingStrategy... strategies)StringtoString()
-
-
-
方法详细资料
-
setLoadingStrategies
public static void setLoadingStrategies(LoadingStrategy... strategies)
-
getLoadingStrategies
public static List<LoadingStrategy> getLoadingStrategies()
Get allLoading Strategies- 返回:
- non-null
- 从以下版本开始:
- 2.7.7
- 另请参阅:
LoadingStrategy,Prioritized
-
getExtensionLoader
public static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type)
-
resetExtensionLoader
@Deprecated public static void resetExtensionLoader(Class type)
已过时。
-
destroyAll
@Deprecated public static void destroyAll()
已过时。
-
getActivateExtension
public List<T> getActivateExtension(URL url, String key)
This is equivalent togetActivateExtension(url, key, null)- 参数:
url- urlkey- url parameter key which used to get extension point names- 返回:
- extension list which are activated.
- 另请参阅:
getActivateExtension(org.apache.dubbo.common.URL, String, String)
-
getActivateExtension
public List<T> getActivateExtension(URL url, String[] values)
This is equivalent togetActivateExtension(url, values, null)- 参数:
url- urlvalues- extension point names- 返回:
- extension list which are activated
- 另请参阅:
getActivateExtension(org.apache.dubbo.common.URL, String[], String)
-
getActivateExtension
public List<T> getActivateExtension(URL url, String key, String group)
This is equivalent togetActivateExtension(url, url.getParameter(key).split(","), null)- 参数:
url- urlkey- url parameter key which used to get extension point namesgroup- group- 返回:
- extension list which are activated.
- 另请参阅:
getActivateExtension(org.apache.dubbo.common.URL, String[], String)
-
getActivateExtension
public List<T> getActivateExtension(URL url, String[] values, String group)
Get activate extensions.- 参数:
url- urlvalues- extension point namesgroup- group- 返回:
- extension list which are activated
- 另请参阅:
Activate
-
getLoadedExtension
public T getLoadedExtension(String name)
Get extension's instance. Returnnullif extension is not found or is not initialized. Pls. note that this method will not trigger extension load.In order to trigger extension load, call
getExtension(String)instead.- 另请参阅:
getExtension(String)
-
getLoadedExtensions
public Set<String> getLoadedExtensions()
Return the list of extensions which are already loaded.Usually
getSupportedExtensions()should be called in order to get all extensions.- 另请参阅:
getSupportedExtensions()
-
getLoadedAdaptiveExtensionInstances
public Object getLoadedAdaptiveExtensionInstances()
-
getExtension
public T getExtension(String name)
Find the extension with the given name. If the specified name is not found, thenIllegalStateExceptionwill be thrown.
-
getOrDefaultExtension
public T getOrDefaultExtension(String name)
Get the extension by specified name if found, orreturns the default one- 参数:
name- the name of extension- 返回:
- non-null
-
getDefaultExtension
public T getDefaultExtension()
Return default extension, returnnullif it's not configured.
-
hasExtension
public boolean hasExtension(String name)
-
getDefaultExtensionName
public String getDefaultExtensionName()
Return default extension name, returnnullif not configured.
-
addExtension
public void addExtension(String name, Class<?> clazz)
Register new extension via API- 参数:
name- extension nameclazz- extension class- 抛出:
IllegalStateException- when extension with the same name has already been registered.
-
replaceExtension
@Deprecated public void replaceExtension(String name, Class<?> clazz)
已过时。not recommended any longer, and use only when testReplace the existing extension via API- 参数:
name- extension nameclazz- extension class- 抛出:
IllegalStateException- when extension to be placed doesn't exist
-
getAdaptiveExtension
public T getAdaptiveExtension()
-
-