NutzCN Logo
问答 Processor、AbstractProcessor的作用?
发布于 3210天前 作者 qq_16f35f46 2031 次浏览 复制 上一个帖子 下一个帖子
标签:

Processor、AbstractProcessor,什么情况下扩展AbstractProcssor呢?麻烦了:)

3 回复

一般来说, 实现Processor都会继承AbstractProcessor

所以呢, 单单说AbstractProcessor的未实现方法

void process(ActionContext ac) throws Throwable;

然后,来看看默认的配置是咋样的

{
	"default" : {
		"ps" : [
		      "org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor",
		      "org.nutz.mvc.impl.processor.EncodingProcessor",
		      "org.nutz.mvc.impl.processor.ModuleProcessor",
		      "!org.nutz.integration.shiro.NutShiroProcessor",
		      "org.nutz.mvc.impl.processor.ActionFiltersProcessor",
		      "org.nutz.mvc.impl.processor.AdaptorProcessor",
		      "!org.nutz.plugins.validation.ValidationProcessor",
		      "org.nutz.mvc.impl.processor.MethodInvokeProcessor",
		      "org.nutz.mvc.impl.processor.ViewProcessor"
		      ],
		"error" : 'org.nutz.mvc.impl.processor.FailProcessor'
	}
}

可以看到, 基本上一个Processor只做自己的事, 然后一路传递下去, 跟aop或struts2的过滤链一样

所以, 例如需要shiro进行鉴权,鉴权只需要知道入口方法,偶尔需要知道是哪个对象,所以NutShiroProcessor在ModuleProcessor之后就行
再例如, 如果要检查方法参数是否合法,那么就需要在AdaptorProcessor之后插入自定义的Processor

说了那么多,其实就一句, 就是你希望在入口方法执行前后(注意是前后,不是前哦)插入自己的通用逻辑的话, 需要自定义Processor了

@wendal Processord 的本质是 aop还是过滤器或者?

添加回复
请先登陆
回到顶部