还是看不懂 Java web 啊!

2018-09-13 14:11:29 +08:00
 nilrust

跟着这个例子 https://spring.io/guides/gs/accessing-data-mysql/ 尝试了下 spring 感觉很简单啊,也就依赖注入时要加 @XXX 标签稍微麻烦点,不能像 Symfony 那样根据类名直接自动注入,我算是入门了吧,自信感觉 “教练,我要打十个!”

然鹅,当我打开一个朋友丢给我维护的 java 项目,我还是看不懂啊,尤其是 mybatis 这种 xml 里面混杂着 sql 拼接的奇葩!不用注解路由,用 servlet-mapping 匹配路由我也忍了,但其实还套了一层 thrift 调用本项目的类方法,实际是通过.thrift 文件来作为路由~~~,

当然业务代码纯 java 还是简单又老土的, 比如用户鉴权用 aspect 鉴权对方法调用。

3450 次点击
所在节点    程序员
14 条回复
night98
2018-09-13 14:19:56 +08:00
tiny 了解一下,我已经吐血了
w292614191
2018-09-13 14:59:51 +08:00
你为什么觉得奇葩呢?是你“见多识广”吗?
nilrust
2018-09-13 15:05:55 +08:00
@w292614191

不奇葩吗,直接拼接,这种不用 prepared statement 就不怕 SQL 注入?

https://i.loli.net/2018/09/13/5b9a0c38585aa.png
micean
2018-09-13 15:08:43 +08:00
@nilrust

mybatis 的中${xxxx}才会有 sql 注入……
whx20202
2018-09-13 15:09:15 +08:00
如果你无聊,有时间,我建议可以了解一下 JOOQ,这个挺好用的
whx20202
2018-09-13 15:10:44 +08:00
另外注入点,据我所知,where 里面的可以用变量占位符。后面的 order by limit xxx 这种注入点,是没办法的。这种情况可以用白名单(枚举类也算白名单),或者强制类型转换
lurenw
2018-09-13 15:12:27 +08:00
@nilrust
你能想到的,mybatis 早想到了,#本来就防注入了
linpf
2018-09-13 15:13:34 +08:00
我最近也在学习 JAVA Web。越看越觉得不习惯。真是想感叹,做 WEB 好好的用 PHP 不好嘛。

JAVA 就好好的做后端服务做 API 就好了,WEB 层面用 JAVA,就像开着挖掘机上高速。不是不能用,但是真难受。

不过也无奈,毕竟绝大多数程序员,用什么语言做项目,是自己说了不算的~~
nilrust
2018-09-13 15:22:52 +08:00
@micean
@lurenw

嗯 不会注入,但是这种 sql 混入看着难不难受?
sampeng
2018-09-13 16:12:49 +08:00
和 java web 无关。

朋友丢给你维护的 java 代码不符合你心意和预想而已。。。拿别人的代码来维护,就别把帽子扣到语言上。
sagaxu
2018-09-13 16:14:15 +08:00
见过自己手拼 json 的 java web 吗?格式还是非标的
ala2008
2018-09-13 16:58:53 +08:00
jpa 了解一下?
wizardforcel
2018-09-13 23:29:27 +08:00
你不能强迫每个人都用 spring 全家桶的啊。。。

十年前开始的项目没办法
woscaizi
2018-09-14 09:43:41 +08:00
@nilrust #3 mybatis 这个是动态 sql,mybatis 已经做了防注入了,不放心可以加个 druid。
用 mybatis 现在大多是因为有相关的代码生成工具,可以直接生成各层的代码吧。
@linpf #8
web 层面用 java 的应该比较少吧,现在常用的是前后端分离啊。

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

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

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

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

© 2021 V2EX