你喜欢使用 Java 下的哪个 web 框架?

263 天前
 kran
看招聘信息的话,springboot 无处不在,你喜欢它吗?还是有其他的选项?有什么原因/理由?
11163 次点击
所在节点    Java
104 条回复
chuck1in
263 天前
我用的
www.mjga.cc
这个框架


springboot 还好把,我觉得 spring boot 主要是文档写的不太行,很多东西都不写清楚。
Rust2015
263 天前
@chuck1in 那是因为 Java 博大精深
cyningxu
263 天前
springboot 用的最多,其次用过 javalin ,ktor
jeesk
263 天前
先不说功能问题, 论文档, 请教一下哪一家比 spring 系列好的?
jeesk
263 天前
在需要 java 各种生态的条件下, 除非你的后台比 spring 还硬, 否则你写一个 web 框架屁用没有。
国内模仿 springboot 的框架不少吧? 有人用吗?

个人写项目和企业写项目完全是两个东西, 不是神话 apache, spring , 他们拥有一个完全的项目规范, 从代码质量,测试用例,漏洞跟踪, 你个人开发的有吗?连测试用例都没有,你自己写一个框架有个屁用。

再说个人开发现在用 python, node,go 来实现 web server, 甚至用 cloudflare worker 都已经能够完全替代 spring boot 了,spring boot 占有率落后是必然。 不过企业开发还得是大厂背书。
1daydayde
263 天前
竟然没看到 jfinal
Terry05
263 天前
曾经在不少项目里用过 jfinal 其实也挺好的
jlkm2010
263 天前
最近在用 solon
liut2016
263 天前
ktor , 特轻量,可以在安卓平台跑
sagaxu
263 天前
@realpg 个人项目 JVM 生态也非常舒适,我用 Kotlin 写后端,少封装几层,开发效率不低于 Python/PHP 。如果用 Go ,倒是能节省一半左右内存,但是要损失一些开发效率,把 map/filter/fold/reduce 写成 for 总是要啰嗦一些。

从 SDK 支持度看,nodejs 和 Go 就首先被排除在外了,很多时候要么用第三方要么自己轮。
微信支付,SDK 官方只支持 Java 、PHP 、Go ,
支付宝,SDK 官方只支持 Java 、PHP 、C#、Python 、Node.js ,Easy 版支持 Java 、C#、PHP 。
mazyi
263 天前
@xuld 写的代码好不好,不是根据代码越少、掌握的概念越少来衡量的。这就是为什么要设计模式的原因。如果你用这样的衡量标准,那么你需要一起否定一下设计模式。因为设计模型才是真正的,增加 10 倍代码量和 10 倍概念的原因。
xuld
263 天前
@mazyi 你可以有你的衡量标准。但请不要试图去证明哪个标准是对的,哪个标准是错的。世上没有绝对的对和绝对的错。
聪明的人,在不同的情况,可能也有不同的标准,而不是认准一套。

作为语言、框架的设计者,只要用户认为我的产品能帮他解决问题、提升效率,那就是硬道理
cheng6563
263 天前
反正别碰异步框架
xuld
263 天前
@mazyi 关于设计模式,我确实是非常反感的。我认为那是把简单的解决问题的方法用哲学的方式去表达。

举个例子:什么是观察者模式
观察者模式是定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。
你需要先创建一个 **Subject**,然后创建一个 **Observer**,然后 **订阅** Observer ,当 Subject 被修改时,需要通知 **Observer**,**Observer** 随后可以做出反应。
如果你是 Java 用户,会觉得上面这段话“小儿科”,
如果你没学过 Java ,很可能觉得这段话莫名其妙。

同样的需求,在我的框架下如何实现?
如果你希望一个对象被修改时执行一个函数,但这个函数不想固定写死。那你可以创建一个变量,变量的值是一个函数,因此它可以和函数一样被调用。

var callback
callback += (obj) => log('传入 1 obj = ', obj) // 串联已有的 callback
callback += (obj) => log('传入 2 obj = ', obj) // 串联已有的 callback
callback(1) // 打印 传入 1 obj =1 传入 2 obj =1
Subfire
263 天前
Helidon
kran
262 天前
@wxw752 与其说是 spring 的生态, 我更倾向于说 java 的生态比较丰富, 围绕注解和配置文件的封装到底是不是好事这值得商榷, 双份文档和打断调试逻辑也是各有见解吧.

带来工资的当然是好框架, 却不能证明不带来工资的是坏框架,哈哈
kran
262 天前
@xuld 我倒是觉得这个未来还比较远, 事实上 AI 对准确性的把握在目前正是弱点吧, 更不要说对业务的准确理解. 有句话说的好, "复杂度不会消失, 只会转移", 虽然这话需要一定的前提, 但你总要有输入才会有输出, 路由/验证/crud, 你总要通过某种途径告知"框架", 自然语言是不保险的, dsl 是另一种复杂度. 关于基建, 我对框架集成, 大多数时候是持否定态度, 暂时说到这, 有兴趣一起交流 icyou@qq.com
kran
262 天前
@zed1018 说说个人看法, 和你相反, 参数验证在路由里才比较奇怪(仅数字那种不算), 参数在直观上应该属于业务的一部分(不完全准确), springboot 在请求处理方法的参数上加验证, 看起来有点强上注解的感觉. 当然了, 个人看法, 不必深究.
wxw752
262 天前
@kran #56 日常工作是 spring cloud 和 go 双修,所以我仍然坚持我的观点,更倾向于说 Java 语言中的 spring 生态完善。

没事每个人都可以有独立思维,倒是也不用强行认知统一😂
dreamlike
262 天前
vertx+jax-rs 绑定+kt coroutine 随便写写

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

https://ex.noerr.eu.org/t/1101726

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

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

© 2021 V2EX