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

2020-06-06 14:04:56 +08:00
 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 框架有这个功能。

6036 次点击
所在节点    Java
64 条回复
2kCS5c0b0ITXE5k2
2020-06-06 14:08:31 +08:00
Spring boot?
chenuu
2020-06-06 14:10:27 +08:00
fmumu
2020-06-06 14:11:44 +08:00
直接基于 servlet 不就行了
tctc4869
2020-06-06 14:11:51 +08:00
@emeab Spring Boot 和我说的不是一个领域的,应该说是 Spring MVC,但是 Spring MVC 我并没有找到匿名类或函数式接口的请求处理的相关代码
oneisall8955
2020-06-06 14:13:09 +08:00
Vert.x
hantsy
2020-06-06 14:14:52 +08:00
jaylee4869
2020-06-06 14:17:07 +08:00
Kyle18Tang
2020-06-06 14:18:15 +08:00
@hantsy #6 我也想到了 Webflux
hantsy
2020-06-06 14:18:52 +08:00
hantsy
2020-06-06 14:45:18 +08:00
@Kyle18Tang Spring WebMvc 在 Spring 5.2 一样支持 Functional 。

https://github.com/hantsy/spring-webmvc-functional-sample
hantsy
2020-06-06 14:52:40 +08:00
myCupOfTea
2020-06-06 15:35:54 +08:00
Vert.x
myCupOfTea
2020-06-06 15:36:07 +08:00
你都提到 nodejs 呢 ,那就 Vert.x
Ariver
2020-06-06 15:41:57 +08:00
play
可以一试
hantsy
2020-06-06 15:55:25 +08:00
@Ariver Play 不如 Akka Http 舒服
yty2012g
2020-06-06 17:21:13 +08:00
首先,Spring MVC 也是可以只有 request 和 response 参数的,个人觉得并不复杂。其次,按照你的情况,可以推荐你使用 jetty embedded,一个 servlet,参数就是 request 和 response,想怎么定制都行。
6IbA2bj5ip3tK49j
2020-06-06 17:23:18 +08:00
http://sparkjava.com/documentation#getting-started

个人一些简单的小项目 /工具需要 web 就用这个,完全符合你的要求。
tsaohai
2020-06-06 18:30:23 +08:00
spark 感觉还成,就是楼上发了文档那个
hantsy
2020-06-06 18:41:15 +08:00
@tsaohai 单纯的 Spark 会让你产生混淆,一般会想到 Apache Spark 。
hantsy
2020-06-06 18:42:02 +08:00
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