Pelaksanaan dan penggunaan pemalam
Buat kelas permulaan pemalam dengan mengisytiharkan anotasi @Plugin
pada kelas yang melaksanakan antara muka IPlugin, yang akan dimuatkan dan diuruskan oleh kilang pemalam termasuk berbilang kelas permulaan pemalam, setiap kelas permulaan pemalam A boleh melaksanakan antara muka perniagaannya sendiri untuk menyediakan perkhidmatan luaran @Plugin
注解来创建插件启动类,其将被插件工厂加载和管理,一个插件包可以包括多个插件启动类,每个插件启动类可以实现自己的业务接口对外提供服务;
@Plugin
isInited: mengembalikan sama ada pemalam telah dimulakan; ;@Plugin
perihalan parameter anotasi:id: ID unik pemalam, jika tidak diisi, nama kelas permulaan akan digunakan Nilai selepas penyulitan MD5 digunakan sebagai ID
nama: nama pemalam, lalai ialah ""; : alias pemalam, lalainya ialah "";
pengarang: pengarang pemalam, lalai ialah ""; e-mel: E-mel kenalan, lalai ialah ""
versi: versi pemalam, the lalai ialah "1.0.0"; automatik: sama ada untuk mula berjalan secara automatik selepas memuatkan, lalai adalah benar;init: pemalam pemalam;
getPluginContext: mengembalikan objek konteks persekitaran pemalam
- permulaan : Mulakan pemalam; tutup: Hentikan pemalam
musnahkan: Musnahkan objek pemalam
Rangka kerja pemalam menyediakan Abstrak; Antara muka IPlugin. Adalah disyorkan untuk mewarisi kod contoh:@Plugin public class DemoPlugin extends AbstractPlugin { // 根据需要重写父类方法... }
Contoh pemalam yang digabungkan dengan antara muka perniagaan:// 定义一个业务接口 public interface IBusiness { void sayHi(); } @Plugin(id = "demo_plugin", name = "DemoPlugin", author = "有理想的鱼", email = "suninformaiton#163.com", version = "1.0") public class DemoPlugin extends AbstractPlugin implements IBusiness { @Override public void startup() throws Exception { super.startup(); // System.out.println("started."); } @Override public void shutdown() throws Exception { super.shutdown(); // System.out.println("shutdown."); } public void sayHi() { System.out.println("Hi, from Plugin."); } }
public static void main(String[] args) throws Exception { YMP.get().init(); try { DemoPlugin _plugin = (DemoPlugin) Plugins.get().getPluginFactory().getPlugin("demo_plugin"); // 或者 // _plugin = Plugins.get().getPluginFactory().getPlugin(DemoPlugin.class); // _plugin.sayHi(); // IBusiness _business = Plugins.get().getPluginFactory().getPlugin(IBusiness.class); _business.sayHi(); } finally { YMP.get().destroy(); } }
Hi, from Plugin.
Hi, from Plugin.
shutdown.
pemalam yang sama boleh melaksanakan berbilang antara muka perniagaan Jika berbilang pemalam melaksanakan antara muka perniagaan yang sama, mengikut urutan pemuatan pemalam, contoh pemalam dimuatkan terakhir Objek akan menggantikan yang pertama