一飞开源
阅读696

[开源]基于Netty开发的一个功能强大、高并发的新型Web开发框架

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

图片

HServer是一个基于Netty开发的一个功能强大,资源丰富,开发灵活,轻量级,低入侵,高并发的新型Web开发框架。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

图片

四、功能概述

特点

  • 简便易用5分钟即可掌握使用

  • 快速构建高效API

  • TCP层上直接构建

  • Restful风格路由设计

  • Cron定时器

  • Filter拦截器

  • 持久Queue队列

  • HOOK/AOP组件

  • Track链路跟踪组件

  • Web Socket功能

  • Mqtt WebSocketMqtt功能

  • 自定义协议

  • Proxy 自由处理

  • ApiDoc文档组件

  • 权限组件

  • Plugin组件自由扩展

  • HUM消息

  • 高性能

  • 高度自由度控制

  • 流量整形

  • Netty 原生响应支持自己扩展

五、技术选型

概念图

图片

压测数据 DeePin 8h 16g i7-9700k

worker线程池

图片

默认配置50个业务线程池

图片

感受一个HelloWorld

1.建立一个maven项目,导入依赖

<parent>
    <artifactId>hserver-parent</artifactId>
    <groupId>cn.hserver</groupId>
    <version>最新版本</version>
</parent>

<dependencies>
<!-- 核心依赖-->
    <dependency>
        <artifactId>hserver</artifactId>
        <groupId>cn.hserver</groupId>
    </dependency>
<!-- web框架 -->
    <dependency>
        <artifactId>hserver-plugin-web</artifactId>
        <groupId>cn.hserver</groupId>
    </dependency>
</dependencies>
<!-- 打包jar -->
<build>
    <plugins>
        <plugin>
            <artifactId>hserver-plugin-maven</artifactId>
            <groupId>cn.hserver</groupId>
        </plugin>
    </plugins>
</build>

2.建立一个java包,如 com.test

3.建立一个主函数

@HServerBoot
public class WebApp {
    public static void main(String[] args) {
        HServerApplication.run(WebApp.class, 8888, args);
    }
}

4.建立一个控制器

@Controller
public class HelloController {

    @GET("/test1")
    public JsonResult test() {
        return JsonResult.ok();
    }

    @POST("/test2")
    public JsonResult b(HttpRequest request) {
        return JsonResult.ok().put("data", request.getRequestParams());
    }

    @RequestMapping(value = "/get", method = RequestMethod.GET)
    public JsonResult get() {
        return JsonResult.ok();
    }

    @RequestMapping(value = "/post", method = RequestMethod.POST)
    public JsonResult post(HttpRequest httpRequest) {
        return JsonResult.ok().put("data", httpRequest.getRequestParams());
    }

    /** * 模板测试 * @param httpResponse */
    @GET("/template")
    public void template(HttpResponse httpResponse) {
        User user = new User();
        user.setAge(20);
        user.setName("xx");
        user.setSex("男");
        Map<String, Object> obj = new HashMap<>();
        obj.put("user", user);
// httpResponse.sendTemplate("/admin/user/list.ftl", obj);
        httpResponse.sendTemplate("a.ftl", obj);
    }
}

5.运行主函数,访问8888端口即可

六、源码地址

源码下载

关注下面的标签,发现更多相似文章

一飞开源
发布了 篇专栏 · 获取点赞 · 获取阅读

评论

查看更多
相关推荐
关于作者
一飞开源
获得点赞 100
文章被阅读 1000
相关文章