javaEE 验证是放在dao,service还是controller层

kaipizhe
  • 1.3k

比添加用户,我要先检查用户是否存在,这个是放在哪个层好?

如果放在dao或者service层,异常要每层都写?如果是放在controller,那每一个要用到的地方都需要先检查?

回复
阅读 13.6k
5 个回答

如果你真的分了3个层去做而且要严格的要求必须分层写!那么应该放到service,因为添加用户前检查这个用户是否存在这是业务逻辑,但实际上大多数可能都不是这样做的,其实没有什么对不对的,框架设计出来是给人用起来便利准备的,不要太拘泥了。不过如果是公司的项目规范那就没办法了,每层可能都是不同组的人去开发,必须分配清楚

个人认为应该是放在controller,数据的检验越早越好,避免程序做无用功,并且你可以把检验抽成一个方法,需要的地方调用一下这个方法就好了。

这个其实还是需要,看具体的需求的。

  1. 当你这个Service需要提供给外部模块调用的话,那么校验是需要放在Service层的。
    但是如果是本模块调用,并且调用的地方只有一个,那么在controller校验一下就好了。
  2. 还有就是需要考虑这个Service调用的频率高不高。举个例子,如果这个Service是单独部署在一台服务器上的,而且调用这个Service很频繁,并且这个校验很耗性能,那么可以考虑把这些校验放在客户端而不是服务端。
    个人观点。
一尘
  • 2
新手上路,请多包涵

参数是controller里接收的,直接验证完事了,如果再service里验证,还要把接收的参数传过去,就绕远了;

Controller层只做http请求参数封装、页面跳转控制等工作, 其它都应该放在service层。

  1. service 中的方法方便组合调用
  2. 在没有controller层的情况下, service还是功能完整的
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏