Usine de plug-ins personnalisés
Il existe deux façons de personnaliser la fabrique de plug-ins :
Configurer la fabrique de plug-ins via
@PluginFactory
annotations Les paramètres d'annotation sont décrits comme suit :Exemple de code :
.@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 { }
Instanciation via l'objet de configuration d'usine
Créer un objet de configuration d'usine :
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());
Créer et initialiser un objet d'instance de fabrique de plug-ins :
IPluginFactory _factory = new DefaultPluginFactory(); _factory.init(_conf);
Méthode d'écoute d'événements de la fabrique de plug-ins personnalisée :
.Le La méthode de gestion des événements de l'usine de plug-ins personnalisée est différente de l'usine de plug-ins par défaut, la surveillance des événements du cycle de vie du plug-in doit être effectuée en implémentant l'interface IPluginEventListener. Les méthodes d'événement et les descriptions de l'interface IPluginEventListener sont les suivantes :
Exemple de code :
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()); } }