java web netty_基于Netty的非Servlet规范 JavaWeb框架及高性能 Java服务器
Bay
一個(gè)非Servlet規(guī)范的JavaWeb框架,包括一個(gè)基于Netty的高性能服務(wù)器.
##介紹 這是一個(gè)基于Netty實(shí)現(xiàn)的非Servlet規(guī)范的Web服務(wù)器,由于底層設(shè)計(jì)經(jīng)驗(yàn)不足,所以實(shí)際上是完成了對(duì)Servlet對(duì)外接口的一層包裝.此框架與Servlet的相同之處大概就這些.就Servlet注冊(cè)路由的繁瑣,本框架盡量簡(jiǎn)化了這部分體驗(yàn),詳情請(qǐng)參見(jiàn)用法部分.另外本框架支持session,但提供了兩種配置方案:1.內(nèi)存存儲(chǔ).適合小應(yīng)用,在單機(jī)環(huán)境部署.2.Redis存儲(chǔ).可以實(shí)現(xiàn)簡(jiǎn)單的橫向擴(kuò)展,適合大型應(yīng)用.已支持velocity模板引擎,可渲染頁(yè)面. 此框架正在完善之中.希望有興趣的朋友可以聯(lián)系我,一起完善這個(gè)框架.
##用法 ###1.Start
import static com.bay1ts.bay.core.Bay.*;
public class HelloWorld {
public static void main(String[] args) {
//支持靜態(tài)文件
staticResources("/static");
//支持RESTful路由,可使用java8 lambda表達(dá)式簡(jiǎn)化編碼
get("/hello", (req, resp) -> {
return "World";
}
);
//支持基于命名空間的路由
NSRoute(
newNameSpace("/start",
//支持controller
NSGet("/a", Controller.serveA),
NSPost("/b", (req, resp) -> {
//支持 類似SpringMVC的 @requestbody 方式
Pojo pojo = req.requestBody(Pojo.class);
if (pojo == null) {
//停止處理,自定義response
halt(500, "something wrong");
}
//內(nèi)置Gson,可返回
return pojo;
},
//支持命名空間嵌套
newNameSpace("/c",
//攔截器(/start/c/d/abc 等),request預(yù)處理
NSBefore("/*", (req, resp) -> {
//可用作驗(yàn)證授權(quán)
return null;
}),
//簡(jiǎn)單數(shù)據(jù)綁定
NSGet("/d/:name", (req, resp) -> {
return req.params(":name");
}
)
)
)
)
);
//啟動(dòng)服務(wù)器.需要寫在最后 默認(rèn)端口5677
listenAndStart();
}
}
總結(jié)
以上是生活随笔為你收集整理的java web netty_基于Netty的非Servlet规范 JavaWeb框架及高性能 Java服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信里的微众银行是怎么回事
- 下一篇: 扎克伯格是机器人吗 看看网友收集的证据