编写插件或集成库
Jul 10, 2017 10:38:44 AM
作者:wendal
nutzmore概述
为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,或提供链接供我们关联.
本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用。