编写插件或集成库

广告位

nutzmore概述 官网及源码地址 nutzmore Git@OSC镜像 为Nutz与其…

nutzmore概述

官网及源码地址 nutzmore Git@OSC镜像

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

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

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

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

旗下的子模块分类

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

插件加载规则

部分插件可通过IocBy加载:

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

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

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

// 查找 *quartz 对应的插件加载类 org.nutz.integration.quartz.QuartzIocLoader // 真实存在 org.nutz.integration.quartz.QuartzAopConfigure org.nutz.plugins.quartz.QuartzIocLoader org.nutz.plugins.quartz.QuartzAopConfigure  // 查找 *activiti 对应的插件加载类 org.nutz.integration.activiti.ActivitiIocLoader // 真实存在 org.nutz.integration.activiti.ActivitiAopConfigure org.nutz.plugins.activiti.ActivitiIocLoader 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,或提供链接供我们关联.

关于作者: 华为工程师芊芊

为您推荐

广告位

发表评论