编写插件或集成库

Jul 10, 2017 10:38:44 AM

作者:wendal

nutzmore概述

官网及源码地址 nutzmoreGit@OSC镜像

为Nutz与其他框架的集成提供官方支持

请同时参考本手册及nutzmore中项目的README文档.

插件均发布到maven中央库,可以直接饮用

手动下载地址: https://jfrog.nutz.cn/artifactory/jcenter/org/nutz/

旗下的子模块分类

  • 插件类 — 扩展nutz的功能,例如Dao缓存,Slog日志注解等
  • 集成类 — 集成Shiro,Beetl,Jedis,Activiti等第三方库

插件加载规则

部分插件可通过IocBy加载:

  1. @IocBy(args = {
  2. "*js","ioc/",
  3. "*anno", "net.wendal.nutzbook",
  4. "*quartz", // 加载Quartz
  5. "*activiti", // 加载activiti
  6. "*net.wendal.nutzbook.ioc.MyMarsLoader" // 使用完整类名
  7. })

其中, js和anno属于内置加载器,最后一个MyMarsLoader是完整类名,没什么可以讨论的.

quartz和activiti均为插件,它将依次查找

  1. // 查找 *quartz 对应的插件加载类
  2. org.nutz.integration.quartz.QuartzIocLoader // 真实存在
  3. org.nutz.integration.quartz.QuartzAopConfigure
  4. org.nutz.plugins.quartz.QuartzIocLoader
  5. org.nutz.plugins.quartz.QuartzAopConfigure
  6. // 查找 *activiti 对应的插件加载类
  7. org.nutz.integration.activiti.ActivitiIocLoader // 真实存在
  8. org.nutz.integration.activiti.ActivitiAopConfigure
  9. org.nutz.plugins.activiti.ActivitiIocLoader
  10. org.nutz.plugins.activiti.ActivitiAopConfigure

若以上类均不存在,将抛出ClassNotFound异常.

常用插件类型

  • 第三方集成 — 实现IocLoader接口.典型应用是nutz-integration-activiti
  • Mvc视图 — 实现ViewMaker接口,典型应用是nutz-plugins-views
  • dao层扩展 — 实现DaoInterceptor接口,典型应用是nutz-plugins-daocache
  • Mvc处理器 — 实现Processor接口/继承AbstractProcessor,典型应用是nutz-integration-shiro中的NutShiroProcessor
  • Aop注解 — 继承SimpleAopMaker,典型实现就是内置的AsyncAopIocLoader

提醒

nutzmore下的项目代码量很少,建议先浏览源码熟悉一下逻辑

非常欢迎提交您的插件到nutzmore,或提供链接供我们关联.

本页面的文字允许在知识共享 署名-相同方式共享 3.0协议GNU自由文档许可证下修改和再使用。

原文: http://nutzam.com/core/integration/nutzmore.html