一般Service层怎么向Controller层传递业务处理结果呢?

KimiKudo 2019-08-08 03:04:07
刚工作半年左右,在小公司里总感觉很多代码规范有些不太好...
所以有个疑问想问问大家,就是关于Java三层框架层之间返回业务结果如何处理比较好,以及异常一般怎么处理

比如,
我service层处理逻辑,有四种情况,这种时候我该怎么给controller层返回处理结果?

还有就是.如果我service层发生了异常,比如数据库异常啦,文件读写异常这些,我应该直接在service层catch处理,还是直接抛出到controller层再catch...

我之前也写过一个在service层catch异常,然后封装为自定义异常再抛出到controller的.但是这样处理程序逻辑感觉也不是特别好....

想请教一下规范一点的写法是什么?
...全文
2422 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ren_cy 2019-08-30
  • 打赏
  • 举报
回复
引用 2 楼 瘦死的黑骆驼 的回复:
第一个问题,如何返回多种情况传递给controller,这个不是很简单吗,方法是有返回值的啊,主要是你返回值的数据结构是否合适,你可以用枚举,可以用map,可以是集合,可以自己封装dto(data transfer object)
第二个问题,如何处理异常呢,最好不要在service层进行try catch,因为现在基本上都是在service层作业务处理,事务会配置在这一层,try catch会导致事务无法回滚,当然你也可以try catch,但是一定要抛出runTimeException才可以回滚事务。最好的做法是在controller层使用aop进行try catch统一管理
瘦死的黑骆驼 2019-08-08
  • 打赏
  • 举报
回复
第一个问题,如何返回多种情况传递给controller,这个不是很简单吗,方法是有返回值的啊,主要是你返回值的数据结构是否合适,你可以用枚举,可以用map,可以是集合,可以自己封装dto(data transfer object) 第二个问题,如何处理异常呢,最好不要在service层进行try catch,因为现在基本上都是在service层作业务处理,事务会配置在这一层,try catch会导致事务无法回滚,当然你也可以try catch,但是一定要抛出runTimeException才可以回滚事务。最好的做法是在controller层使用aop进行try catch统一管理
有心usin 2019-08-08
  • 打赏
  • 举报
回复
业务层可以抛异常,然后统一异常处理就完事了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧