Skip to content
/ Bay Public

Java HTTP Server And Servlet-Like Framework.

License

Notifications You must be signed in to change notification settings

bay1ts/Bay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bay

一个非Servlet规范的JavaWeb框架,包括一个基于Netty的高性能服务器.

##介绍 这是一个基于Netty实现的非Servlet规范的Web服务器,由于底层设计经验不足,所以实际上是完成了对Servlet对外接口的一层包装.此框架与Servlet的相同之处大概就这些.就Servlet注册路由的繁琐,本框架尽量简化了这部分体验,详情请参见用法部分.另外本框架支持session,但提供了两种配置方案:1.内存存储.适合小应用,在单机环境部署.2.Redis存储.可以实现简单的横向扩展,适合大型应用.已支持velocity模板引擎,可渲染页面. 此框架正在完善之中.希望有兴趣的朋友可以联系我,一起完善这个框架.

##用法 ###1.Start

import static com.bay1ts.bay.core.Bay.*;

public class HelloWorld {
    public static void main(String[] args) {
        //支持静态文件
        staticResources("/static");


        //支持RESTful路由,可使用java8 lambda表达式简化编码
        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");
                                    }

                                    //内置Gson,可返回
                                    return pojo;
                                },

                                //支持命名空间嵌套
                                newNameSpace("/c",

                                        //拦截器(/start/c/d/abc   等),request预处理
                                        NSBefore("/*", (req, resp) -> {

                                            //可用作验证授权
                                            return null;
                                        }),

                                        //简单数据绑定
                                        NSGet("/d/:name", (req, resp) -> {
                                                    return req.params(":name");
                                                }
                                        )
                                )
                        )
                )
        );
        //启动服务器.需要写在最后 默认端口5677
        listenAndStart();
    }
}

About

Java HTTP Server And Servlet-Like Framework.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages