カスタムプラグインファクトリー
プラグイン ファクトリをカスタマイズするには 2 つの方法があります:
アノテーションを使用してプラグイン ファクトリを設定する アノテーション パラメータは次のように説明されます:
@PluginFactory
サンプル コード:@PluginFactory(pluginHome = "${root}/plugins") public class DemoPluginFactory extends DefaultPluginFactory { } // 或者 @PluginFactory(pluginHome = "${root}/plugins", autoscanPackages = {"com.company", "cn.company"}, automatic = true, includedClassPath = false, listenerClass = DemoPluginEventListener.class) public class DemoPluginFactory extends DefaultPluginFactory { }
- ファクトリ設定オブジェクトによるインスタンス化 ファクトリ設定オブジェクトの作成:
DefaultPluginConfig _conf = new DefaultPluginConfig(); _conf.setPluginHome(new File(RuntimeUtils.replaceEnvVariable("${root}/plugins"))); _conf.setAutomatic(true); _conf.setAutoscanPackages(Arrays.asList("com.company", "cn.company")); _conf.setIncludedClassPath(false); _conf.setPluginEventListener(new DefaultPluginEventListener());
プラグイン ファクトリ インスタンス オブジェクトの作成と初期化:IPluginFactory _factory = new DefaultPluginFactory(); _factory.init(_conf);
カスタム プラグイン ファクトリのイベント リスニング メソッド:カスタム プラグイン ファクトリのイベント処理メソッドはデフォルトのプラグイン ファクトリとは異なります。プラグイン ライフサイクル イベント監視は IPluginEventListener インターフェイスを実装することで完了する必要があります。 IPluginEventListener インターフェイスのイベント メソッドと説明は次のとおりです。
サンプルコード:
public class DemoPluginEventListener implements IPluginEventListener { public void onInited(IPluginContext context, IPlugin plugin) { System.out.println("onInited: " + context.getPluginMeta().getName()); } public void onStarted(IPluginContext context, IPlugin plugin) { System.out.println("onStarted: " + context.getPluginMeta().getName()); } public void onShutdown(IPluginContext context, IPlugin plugin) { System.out.println("onShutdown: " + context.getPluginMeta().getName()); } public void onDestroy(IPluginContext context, IPlugin plugin) { System.out.println("onDestroy: " + context.getPluginMeta().getName()); } }