基于 Netty 实现了一个轻量级的 Java Web 框架,麻雀虽小,五脏俱全。
项目地址 Windward,从此简简单单写 Java
![]() | 1 8rmEHZ8WhVHVOb0E 2024-02-01 01:20:02 +08:00 ![]() 你们 javaer 不是都用 springboot 吗 我一直以为你们不用其它的 |
2 sakuramanstein 2024-02-01 08:22:47 +08:00 via Android 牛,支持一波 |
![]() | 3 lsk569937453 2024-02-01 08:35:02 +08:00 @xiaomada 反正我们公司是 jdk 1.8+springboot 2.x+http 。毕竟 web 项目主要就是增删改查。 性能?我优化了项目,性能提升了,老板又不帮我加工资。 websocket 协议? 100 个项目可能会有 1 两个项目会用其他的协议(websocket/grpc)。 |
![]() | 4 Dragonphy 2024-02-01 08:38:39 +08:00 ![]() @lsk569937453 Spring Data Rest 一把梭 |
5 stinkytofu 2024-02-01 08:45:45 +08:00 正需要这个, 我倒不是想开发 web , 正儿八经写后端肯定用 springboot , 我想在 java 程序中实现 http api 实现外部调用, 用 springboot 就太重了。现在用的是 nanohttpd , 太老了, 也不好用。 |
6 wxd21020 2024-02-01 08:46:39 +08:00 是否可以讲讲项目架构,开发历程,功能实现等等,来促使更多想学习,想使用的人了解你的项目,学习你的思路,愚建,仅供参考。 |
![]() | 7 keepfun 2024-02-01 09:15:13 +08:00 ![]() rps 是怎么做到比 go 的 gin 还高的啊 有机会我试一把 |
![]() | 8 Goooooos 2024-02-01 09:17:20 +08:00 我还喜欢用 vertx |
![]() | 9 xiongperry 2024-02-01 09:19:13 +08:00 不错呀楼主,有点像除了 java 以外的其他语言框架,楼主是 php,go 等其他语言的开发者吗 看文档没有写查数据库之类的 github 已经给你 star 星星了 |
11 Philippa 2024-02-01 09:38:20 +08:00 ![]() 配置还是 xml ,看着都头疼 |
![]() | 12 hero0earth OP @Philippa 你用 Maven 肯定还是 xml 啊,本身没有预置任何类型的配置文件 |
![]() | 13 hero0earth OP @xiongperry 哈哈,楼主就是写 Java 的。只是 Web 框架,数据库操作不是一个范畴 |
![]() | 14 jaylengao 2024-02-01 10:12:15 +08:00 ![]() benchmark 不太准吧,gin 比 vertx 还高 |
15 Ayanokouji 2024-02-01 10:21:35 +08:00 @xiaomada 是的,要换 springboot ,java 也一起换了 |
![]() | 16 hero0earth OP @jaylengao IO 操作不重的情况下,Reactive 应用并不能发挥优势 |
![]() | 17 KING754 2024-02-01 11:06:38 +08:00 https://github.com/KING754/unicorn 我有一个 DEMO 的。一直想细化和深入一下。一直懒,也不知道接下来该做些什么。 |
18 williamshan 2024-02-01 11:34:35 +08:00 via Android 牛的,学习学习 |
![]() | 19 zzl22100048 2024-02-01 11:38:25 +08:00 小项目我都用 activej https://activej.io/ 启动是真快 |
![]() | 20 Dlin 2024-02-01 11:40:06 +08:00 不是 servlet 那一套 |
![]() | 21 Dlin 2024-02-01 11:41:24 +08:00 先打个关注一波 |
![]() | 23 diagnostics 2024-02-01 13:16:22 +08:00 Web Backend 的架构来来回回就是那个样子,无非在用户 API 上做了些改变或者线程模式上有一些轻微的变化。 |
24 ayayui 2024-02-01 13:25:49 +08:00 推荐下 Ktor |
![]() | 25 90xchun 2024-02-01 13:43:40 +08:00 via Android ,web 框架提供静态资源托管的还真不常见的 小项目我都用 https//github.com/94fzb/simplewebserver ,不基于 netty ,内存使用量更小,更底层,更易控制,比如博客程序这种功能不复杂工程 https://blog.zrlog.com |
![]() | 26 silentsky 2024-02-01 13:45:36 +08:00 spring webflux 也是基于 netty 的 不太相信比 springmvc 还差 |
27 Leviathann 2024-02-01 13:46:29 +08:00 @zzl22100048 这玩意好像有很多黑科技 |
28 smartdoc647 2024-02-01 15:20:36 08:00 无注解框架的有一个痛点就是搞接口文档比较难,其实很多开发都不想手写文档,像我们开源的 smart-doc 对 spring 这种注解路由的框架,工程师已经只需要写几行简单的 javadoc 注释了。生成的文档质量也远超手写的。我同时也是一个 golang 开发者,我们发现 go 的框架基本也是声明式路由,搞文档就很头痛 |
![]() | 29 ychost 2024-02-01 15:51:04 +08:00 和 ktor 的风格差不多,不过 Web 端入口写法都大同小异 |
30 Philippa 2024-02-01 16:20:14 +08:00 via iPhone @smartdoc647 可以自动生成 swagger ,不仅能看还能调用 |
31 smartdoc647 2024-02-01 16:50:46 +08:00 @Philippa swagger 对群主框架就没啥用的,go 框架也能用 swagger 搞,但是我们发现这东西无脑让写一堆非标注释。理想的情况就是既不去影响用户的代码,又不能要求用户写一堆非标注释增加开发的负担。smart-doc 在国内在 java 领域非常受欢迎也是这个原因。我们的贡献者甚至都有小米、快手这些公司的。 |
![]() | 32 hongye 2024-02-01 17:57:45 +08:00 稍微看了下,变量好像是依赖 context 进行传递的,请问是如何做线程安全的呢 |
33 Philippa 2024-02-01 18:03:20 +08:00 @smartdoc647 不用写注释,就是代码直接生成 swagger 。代码变了就会跟着变了 |
![]() | 34 hero0earth OP @hongye Context 并不存在资源共享 |
![]() | 35 keepfun 2024-02-01 18:18:56 +08:00 学习了 下 文档太简单了 文档也就能跑个 hello world 。 看到群主依有个 short url ,用了这个框架,但是版本不是最新的,想着换成最新的,然后吧 java17 的语法改下,结果 路由那块不知道咋改 test 里面也找不到例子。 所以如果这样子,用的代价有点大。 |
![]() | 36 hero0earth OP @fenglangjuxu 那个项目路由注册用了 Java 的语法糖,常见问题有个示例的入门项目啊 |
![]() | 37 keepfun 2024-02-01 18:44:00 +08:00 @hero0earth #36 嗯 看到了那个入门项目 那个基本也就一个 hello world 。其实我觉得 最起码实例应该加上 你这个框架的一个核心特性 就是 function 包括带有入参的那种 function 。 当然 我的要求有点多了,但是我觉得既然把框架发到这里,就是想让大家使用的,提出的问题,没有恶意。更不是对作者水平的怀疑,毕竟能写出这样框架的人,水平肯定是很牛逼的。 |
![]() | 38 hero0earth OP @fenglangjuxu 那个是 Java 的特性,我不敢乱戴帽子,后续文档我提一嘴 |
![]() | 39 Braisdom 2024-02-01 19:43:07 +08:00 @hero0earth 学习了一下,感觉不错,点赞。 |
![]() | 40 cnzjl 2024-02-02 09:04:24 +08:00 轻量级是不是就意味着要舍弃很多功能,需要用户自己实现 |
![]() | 41 hero0earth OP @cnzjl 并不完全绝对,要视项目而言,用户更多的是做整合 |