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 还是熟悉的配方,熟悉的味道

<dependency>
    <groupId>com.hibegin</groupId>
    <artifactId>simplewebserver</artifactId>
    <version>0.2.42</version>
</dependency>
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());
    }
}

然后浏览器输入 http://localhost:6058

打包

推荐使用 maven-assembly-plugin

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.5.5</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.hibegin.http.server.test.DemoController</mainClass>
                    </manifest>
                </archive>
                <finalName>simplewebserver-demo</finalName>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>

mvn clean compile assembly:single

性能

简单与号称 “性能打爆网卡的tio” 对比,感兴趣移步到 https://gitee.com/94fzb/simplewebserver-performance

Changelog

完整的版本变化日志

TODO

其他

License

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