Leviathann
V2EX  ›  Java

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

  •  
  •   Leviathann · May 21, 2021 via iPhone · 2522 views
    This topic created in 1826 days ago, the information mentioned may be changed or developed.
    有个可以配置的 filter 对象包含 n 条判定规则,如果某条规则没配置就不用判定,其中某几条规则的判断需要 io,所以把几个 dao 包了个 pojo 传给这个 filter,做一个延迟加载。
    结果 reviewer 不给通过,说不能这么写。
    我说那怎么改,他说把 filter 自带的 test 方法写到 service 里。。这个 test 方法大概有几十行,把所有内部属性的判定函数都用&&连接起来。

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

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

    用 function 感觉比较优雅了,filter 不需要太关心校验的细节
    young1lin
        3
    young1lin  
       May 22, 2021
    ServcieManager
    siweipancc
        4
    siweipancc  
       May 22, 2021 via iPhone
    这种属于非常规写法了,如果来个序列化,或者方法缓存,画面不要太美
    siweipancc
        5
    siweipancc  
       May 22, 2021 via iPhone
    可包装自身的 getBean 方法做懒加载,同步 map 的计算并得值方法可以一用。
    Leviathann
        6
    Leviathann  
    OP
       May 25, 2021
    @Feiex sry 我没说清楚,这个 filter 本身是一个 model,准确的说是一个 hibernate entity,因为里面一共有几十条判断条件,而且都是可空的,所以暴露了一个 test 方法对外使用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2910 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 11:09 · PVG 19:09 · LAX 04:09 · JFK 07:09
    ♥ Do have faith in what you're doing.