如何消灭重复代码,提高代码质量

2017-04-09 16:53:28 +08:00
 q397064399

Java

例如我在 mapper 层 取得了 User bean 对象,但是当前 User 这个模型 里面是自带了 password 字段, 而我目前这个需求是 只要暴露 User 对象的 id name 等少量模型属性, 除了重新建立一个 dto 对象 set get 一遍 ,还有其它办法么? 譬如在 User 模型上 加上一些注解关键字,可以随时开关这个模型的字段 序列化成 JSON 的结果

表达有点不清晰,,求解。。

1925 次点击
所在节点    问与答
10 条回复
q397064399
2017-04-09 17:23:44 +08:00
已找到方法,采用定制序列化即可,,
q397064399
2017-04-09 17:23:51 +08:00
结贴
Coande
2017-04-09 17:31:37 +08:00
@q397064399 分享一下咯
q397064399
2017-04-09 17:38:07 +08:00
@Coande #3 https://github.com/alibaba/fastjson/wiki/%E4%BD%BF%E7%94%A8SimplePropertyPreFilter%E8%BF%87%E6%BB%A4%E5%B1%9E%E6%80%A7

fastjson 可以采用 属性定制过滤器 来过滤字段属性,这样就可以减少重复代码了
springmarker
2017-04-09 17:52:26 +08:00
@JSONField(serialize = false)写在 get 方法上 fastjson.
jackson 好像是 @JsonIgnore ,没用过。
gexyuzz
2017-04-09 18:01:51 +08:00
不如采用 dto 传输
q397064399
2017-04-09 19:08:36 +08:00
@gexyuzz #6 dto 得重新建立个对象吧,,那样不是要 put get 一遍了
wohenyingyu02
2017-04-09 20:22:55 +08:00
有时候有重复代码质量反而更好吧……
pippo
2017-04-09 21:26:14 +08:00
@wohenyingyu02
嗯,跨服务可以适当违反 DRY 。
wc951
2017-04-09 21:32:33 +08:00
jackson 的 jsonview 注解

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

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

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

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

© 2021 V2EX