寒风逝流 2018-07-11 12:58 采纳率: 50%
浏览 1016
已采纳

关于代码编写规范的疑问,spring mvc 控制层一段代码被多次复制重用,如何设计优化

业务逻辑大概如下:
功能:用户留咨保存功能
视图层:留咨界面,用户填写信息
控制层:校验数据合法,并依据request从cookies中取出用户城市站、usertraceId等信息,根据request请求头判断设备类型。最终封装实体调用入库接口。
服务层:验重、保存数据。
问题:
控制层做入参校验理所当然,没有问题。现在问题来了,此控制器承载多方留咨请求,,绝大部分业留咨务都可以直接请求,变化来了,在另一种业务条件下,如领优惠券,产品提了需求,要求用户领券成功之后在再调用用户留咨接口。我初始想在领券控制器中判断,成功后直接调用用户留咨控制器,避免一系列参数校验逻辑再写一遍,也不用再重写从request里面获取cookies等方法。但是考虑到mvc的设计,不应该控制层调取控制层(redirect除外)但是不调用,着一系列的逻辑我又要重写一份。又想到把校验逻辑和取cookies和设备信息放到service层,但是需要操作request,request是控制层操作的,如果把request带到服务端,那样也破坏了编码规范,至少这个服务类方法的test ng你都很难跑。不能new一个request对象吧。
所以不知道如何设计才好?难道我还是要把校验等代码复制一份?求探讨指教

  • 写回答

3条回答

  • bayuemu 2018-07-11 13:10
    关注

    验证的事情交给拦截器去做

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大