Nutz下面定制自己的动作链

本文介绍如何通过简单的步骤使Nutshell MVC框架支持并行计算,包括自定义Processor、配置动作链及验证效果的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搜了很多文章,只有这篇有实际例子可以参看,

充分利用多核优势,高效并行渲染页面--改造nutz使其成为支持并行计算的MVC框架

http://www.iteye.com/topic/1125024

经过我验证,原来只要在mainModule上面添加 chainBy然后下面所有action默认的动作链都会变成mainModule上面的动作链,

好了,首先定制自己Processor,然后添加一个动作链配置文件,之后再mainModule 上面设定默认动作链,例子如下:


Processor:

package EasisWeb.Processor;

import org.nutz.mvc.impl.processor.AbstractProcessor;
import org.nutz.mvc.*;
public class SessionBeginProcessor  extends AbstractProcessor {

    public void process(ActionContext ac) throws Throwable {
         System.out.println("开始执行session begin");
         doNext(ac);
    }
}


package EasisWeb.Processor;

import org.nutz.mvc.ActionContext;
import org.nutz.mvc.impl.processor.AbstractProcessor;

public class SessionEndProcessor extends AbstractProcessor {
    public void process(ActionContext ac) throws Throwable {
        System.out.println("开始执行session end");
        doNext(ac);
    }
}


设定动作链配置文件,

{
    "default" : {
    "ps" : [
        "EasisWeb.Processor.SessionBeginProcessor",//处理session,负责寻找或分配sessionid,创建session等
        "org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor",
        "org.nutz.mvc.impl.processor.EncodingProcessor",
        "org.nutz.mvc.impl.processor.ModuleProcessor",
        "org.nutz.mvc.impl.processor.ActionFiltersProcessor",
        "org.nutz.mvc.impl.processor.AdaptorProcessor",
        "org.nutz.mvc.impl.processor.MethodInvokeProcessor",
        "org.nutz.mvc.impl.processor.ViewProcessor",
        "EasisWeb.Processor.SessionEndProcessor"  //将该请求的session写入缓存服务器里面。
    ],
        "error" : 'org.nutz.mvc.impl.processor.FailProcessor'
}
}

【注意:我直接放到src下面,名称为:default-chains.js】


在MainModule上面配置默认动作链:

package EasisWeb.Controller;

import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.ChainBy;
import org.nutz.mvc.annotation.Modules;
import org.nutz.mvc.annotation.Ok;

@Modules(scanPackage=true)
@ChainBy(args={"default-chains.js"})
public class MainModule {
    @At("/hello")
    @Ok("jsp:jsp.sayhello")
    public String sayHello(){
        Object ob1="";

        return "hello!!!!";
    }

}


然后将项目运行,访问几个网页,你会看到你添加的processor运行正常,在控制台我看到的是:


开始执行session begin
开始执行session end
开始执行session begin
开始执行session end


简单吧?



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值