编写插件或集成库

优质
小牛编辑
131浏览
2023-12-01

官网及源码地址 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,或提供链接供我们关联.