1.参数检查 放在 service层还是controller层
没有定论,我们一般把无业务语义的校验放在action层,用validation做,比如数据类型、长度、格式等;业务语义类校验则放在service层。
但实际操作中不一定那么清晰,所以笼统的理解是:
1、如果可以独立完成不依赖于其它数据就能做的校验,放在了action;比如检查身份证号码是否合规;
2、如果校验需要依赖于其它数据才能完成,放在了service层;比如银行转帐的时候,检查账户是否有余额,这就是存在数据依赖的。
(1)这个要一分为二的看待. 如果是null之类的判断, 可以放在action. 如果是涉及到业务逻辑(比如不变性约束), 都需要放在Servcie层.
(2)按照MVC模式看, Action层也只是接收http请求, 不涉及到更多的职责. 所以在非常复杂的大型项目中, 分三层: Action->AO->Servcie. 此时可以把一些验证工作放在AO层(当然AO还有其他职责). Action层本身只做接收请求, 然后委派给AO.