Java 现在有哪些具备极简处理请求功能的 WebMVC 框架?

2020 年 6 月 6 日
 tctc4869

目前很多 webMVc 框架,基本都要先写 Controller 类,然后注册或写注解,但对于现在的我来说,类似 Spring MVC 那一套衍生的开发体验不太好,不太利于开发者定制(相对于 node.js )。我想更简单地处理请求,直接用一个匿名类或函数式接口来处理所有的请求。因为越简单,就越容易定制。

比如下面这个: const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World'); });

这是 node.js 的官方网址里的某个演示,非常简单的请求处理,就一个函数来处理所有请求

HttpServer server = Vertx.vertx().createHttpServer(); Router router = Router.router(Vertx.vertx()); router.route().handler(request -> { request.response().end("post");

}); 还有 java 的 vert.x,不过这个是面向完全响应式开发,对个人和团队的响应式知识掌握,以及代码组织能力都有不小的要求。

基本有 request 和 response 两个形式参数,其中 response 封装返回视图,返回 body,下载文件,输出图片,设置响应状态码……等常用响应输出的方法。框架本身已经封装了 session 和静态资源处理。

除了 vert.x,还有哪些 java 框架有这个功能。

6916 次点击
所在节点    Java
64 条回复
2kCS5c0b0ITXE5k2
2020 年 6 月 6 日
Spring boot?
chenuu
2020 年 6 月 6 日
fmumu
2020 年 6 月 6 日
直接基于 servlet 不就行了
tctc4869
2020 年 6 月 6 日
@emeab Spring Boot 和我说的不是一个领域的,应该说是 Spring MVC,但是 Spring MVC 我并没有找到匿名类或函数式接口的请求处理的相关代码
itechify
2020 年 6 月 6 日
Vert.x
hantsy
2020 年 6 月 6 日
lavvrence
2020 年 6 月 6 日
Kyle18Tang
2020 年 6 月 6 日
@hantsy #6 我也想到了 Webflux
hantsy
2020 年 6 月 6 日
hantsy
2020 年 6 月 6 日
@Kyle18Tang Spring WebMvc 在 Spring 5.2 一样支持 Functional 。

https://github.com/hantsy/spring-webmvc-functional-sample
hantsy
2020 年 6 月 6 日
myCupOfTea
2020 年 6 月 6 日
Vert.x
myCupOfTea
2020 年 6 月 6 日
你都提到 nodejs 呢 ,那就 Vert.x
Ariver
2020 年 6 月 6 日
play
可以一试
hantsy
2020 年 6 月 6 日
@Ariver Play 不如 Akka Http 舒服
yty2012g
2020 年 6 月 6 日
首先,Spring MVC 也是可以只有 request 和 response 参数的,个人觉得并不复杂。其次,按照你的情况,可以推荐你使用 jetty embedded,一个 servlet,参数就是 request 和 response,想怎么定制都行。
6IbA2bj5ip3tK49j
2020 年 6 月 6 日
http://sparkjava.com/documentation#getting-started

个人一些简单的小项目 /工具需要 web 就用这个,完全符合你的要求。
46Gnj0E0OBmad377
2020 年 6 月 6 日
spark 感觉还成,就是楼上发了文档那个
hantsy
2020 年 6 月 6 日
@tsaohai 单纯的 Spark 会让你产生混淆,一般会想到 Apache Spark 。
hantsy
2020 年 6 月 6 日
SparkJava 对 Kotlin 支持不错,想到了 Jetbrains 还有自己的 Ktor 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/679162

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX