由于目前jpress开发者还不是很多,所以目前jpress开发的插件还比较少,官方也没有放出相关的jpress插件开发文档,只有一个helloword插件开发例子。
本篇文章就带您简单的分析下相关的插件开发代码。
最新的jpress插件例子代码是8月23号刚刚更新的,代码结构还是比较优雅的,上手难度不大。
通过git clone下整个项目代码,找到【JPress-addon-helloword】文件夹即可,或者直接导入eclipse编辑器找到该项目类库。
jpress插件helloword的核心代码主要就两个:HelloMessage.java 和HelloAddon.java,下面小编一一为大家阐释。
首先是HelloAddon.java,代码部分如下:
public class HelloAddon extends Addon { /** * AddonController 请求的钩子 * @param controller */ @Hook(Hooks.PROCESS_CONTROLLER) public Render hello(Controller controller) { // 访问 http://127.0.0.1:8080/addon 看到效果 return new TextRender("hello addon"); } @Override public boolean onStart() { MessageKit.register(HelloMessage.class); return true; } @Override public boolean onStop() { MessageKit.unRegister(HelloMessage.class); return true; } }
对其中的HelloMessage.java代码如下,先贴出来:
package io.jpress.addon.helloworld; import io.jpress.menu.MenuGroup; import io.jpress.menu.MenuItem; import io.jpress.menu.MenuManager; import io.jpress.message.Message; import io.jpress.message.MessageListener; import io.jpress.message.annotation.Listener; @Listener(action = MenuManager.ACTION_INIT_MENU, async = false) public class HelloMessage implements MessageListener { @Override public void onMessage(Message message) { MenuManager manager = message.getData(); MenuGroup menuGroup = new MenuGroup("hello-test", null, "插件测试"); MenuItem item = new MenuItem("test", "#", "插件测试"); menuGroup.addMenuItem(item); manager.addMenuGroup(menuGroup); } }
JPress插件开发主要就是对jpress中Hook钩子的理解,另外插件一定要继承Addon这个类。