java 开源 server_simplewebserver: SimpleWebServer 是一款使用Java基于NIO编写的超轻量级开源Web Application Server...

居星阑
2023-12-01

SimpleWebServer

SimpleWebServer 是一款使用Java基于NIO编写的超轻量级开源Web Application Server

是否遇到有时候想做一些小的Web程序,但是迫于Java运行环境过于繁琐而迟迟没有下手,那么现在除了SpringBoot,广大的Java程序员又多了一个选择

轻量级

并不基于servlet,源代码仅3000行左右,jar包仅 0.1m 左右,零依赖,无xml,极低的内存占用,所以不用担心程序能不能在嵌入式(树莓派)/Android 上能否正常运行

完整

Cookie,Interceptor,Json,模板,文件上传,基本常用API都有,使得写Web应用更容易

快速上手

request, response, controller. interceptor 还是熟悉的配方,熟悉的味道

com.hibegin

simplewebserver

0.2.42

public class DemoController extends Controller{

public static void main(String[] args) {

ServerConfig serverConfig = new ServerConfig();

serverConfig.getRouter().addMapper("", DemoController.class);

new WebServerBuilder.Builder().serverConfig(serverConfig).build().startWithThread();

}

public void index() {

getResponse().renderText("Hello world/v" + ServerInfo.getVersion());

}

}

打包

推荐使用 maven-assembly-plugin

maven-assembly-plugin

2.5.5

com.hibegin.http.server.test.DemoController

simplewebserver-demo

jar-with-dependencies

mvn clean compile assembly:single

性能

Changelog

TODO

支持HTTP2.0基本协议(不包含服务端推送)

实现多线程解码HTTP请求

提供类似 SpringMVC 通过注解完成 Restful API的编写

提供多种 JSON 序列化工具包支持

提供HTTP错误码错误页面配置功能

其他

WebServer 默认端口为 6058 在 conf/conf.properties 中,或则通过代码的方式进行配置

使用 FreeMarkerKit.init 初始化模板文件根目录,FreeMarkerKit.initClassTemplate 初始模板相对jar中的根目录

服务器上时建议打包为 jar 文件运行(推荐使用 maven,jar文件路径与conf 文件夹同目录)

依赖的json和freemarker的jar都是非必须

License

SimpleWebServer is Open Source software released under the Apache 2.0 license.

 类似资料: