public final class Container extends Object
Container常驻内存,PluginJar动态加载:动静分离
+- 1 containerClassLoader
|- 1 jdkClassLoader
|- 1 containerApplicationContext
|
| +- pluginApplicationContext
| |
Container ----> Plugin --+- pluginClassLoader
N | loadClass
+---------------------+
| |
[Partner | Pattern] Extension
| 限定符和类型 | 方法和说明 |
|---|---|
@NonNull Map<String,IPlugin> |
getActivePlugins()
获取当前所有活跃的
Plugin. |
static @NonNull Container |
getInstance()
获取业务容器单例.
|
void |
loadPartnerPlugin(@NonNull String code,
@NonNull String version,
@NonNull String jarPath,
boolean useSpring)
加载业务前台jar包,使用默认的IContainerContext实现.
|
void |
loadPartnerPlugin(@NonNull String code,
@NonNull String version,
@NonNull String jarPath,
boolean useSpring,
IContainerContext containerContext)
加载业务前台jar包,支持定制IContainerContext的实现.
|
void |
loadPartnerPlugin(@NonNull String code,
@NonNull String version,
@NonNull URL jarUrl,
boolean useSpring)
加载业务前台jar包.
|
@NonNull public static @NonNull Container getInstance()
@NonNull public @NonNull Map<String,IPlugin> getActivePlugins()
Plugin.public void loadPartnerPlugin(@NonNull
@NonNull String code,
@NonNull
@NonNull String version,
@NonNull
@NonNull URL jarUrl,
boolean useSpring)
throws Throwable
code - IPlugin.getCode()version - version of the jarjarUrl - Plugin jar URLuseSpring - jar包里是否需要Spring机制Throwablepublic void loadPartnerPlugin(@NonNull
@NonNull String code,
@NonNull
@NonNull String version,
@NonNull
@NonNull String jarPath,
boolean useSpring,
IContainerContext containerContext)
throws Throwable
如果使用本动态加载,就不要maven里静态引入业务前台jar包依赖了.
code - IPlugin.getCode()version - version of the jarjarPath - jar pathuseSpring - jar包里是否需要Spring机制containerContext - container context instanceThrowablepublic void loadPartnerPlugin(@NonNull
@NonNull String code,
@NonNull
@NonNull String version,
@NonNull
@NonNull String jarPath,
boolean useSpring)
throws Throwable
如果使用本动态加载,就不要maven里静态引入业务前台jar包依赖了.
code - IPlugin.getCode()version - version of the jarjarPath - jar pathuseSpring - jar包里是否需要Spring机制ThrowableCopyright © 2020–2023. All rights reserved.