V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Leviathann
V2EX  ›  Java

Spring 里有不能把 dao 传给 pojo 这种规范吗

  •  
  •   Leviathann · 2021-05-21 19:26:14 +08:00 via iPhone · 2034 次点击
    这是一个创建于 1286 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有个可以配置的 filter 对象包含 n 条判定规则,如果某条规则没配置就不用判定,其中某几条规则的判断需要 io,所以把几个 dao 包了个 pojo 传给这个 filter,做一个延迟加载。
    结果 reviewer 不给通过,说不能这么写。
    我说那怎么改,他说把 filter 自带的 test 方法写到 service 里。。这个 test 方法大概有几十行,把所有内部属性的判定函数都用&&连接起来。

    我想了下,把几个 dao 的调用都改成 lambda 传进去,多写了一堆 function supplier 之类的类型声明,然后就给通过了。。
    6 条回复    2021-05-25 16:56:10 +08:00
    chendy
        1
    chendy  
       2021-05-21 19:56:33 +08:00
    没太看懂,但是吧
    spring 就一框架啥规范没有,问问 reviewer 啥意思吧
    Feiex
        2
    Feiex  
       2021-05-21 20:42:48 +08:00
    没有。

    不过为什么最开始不把 dao 作为依赖声明在 filter 里呢???

    用 function 感觉比较优雅了,filter 不需要太关心校验的细节
    young1lin
        3
    young1lin  
       2021-05-22 10:48:01 +08:00
    ServcieManager
    siweipancc
        4
    siweipancc  
       2021-05-22 17:43:25 +08:00 via iPhone
    这种属于非常规写法了,如果来个序列化,或者方法缓存,画面不要太美
    siweipancc
        5
    siweipancc  
       2021-05-22 17:47:48 +08:00 via iPhone
    可包装自身的 getBean 方法做懒加载,同步 map 的计算并得值方法可以一用。
    Leviathann
        6
    Leviathann  
    OP
       2021-05-25 16:56:10 +08:00
    @Feiex sry 我没说清楚,这个 filter 本身是一个 model,准确的说是一个 hibernate entity,因为里面一共有几十条判断条件,而且都是可空的,所以暴露了一个 test 方法对外使用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5448 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:30 · PVG 15:30 · LAX 23:30 · JFK 02:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.