java中controller中到底写的是什么?

guobaoruxx 2018-01-02 11:51:43
网上很多都说,controller中写校验,转发,不要写逻辑。这个逻辑的定义到底是个啥鬼?
举例说,我现在有个业务较为复杂的场景,我把所有的业务逻辑都写到service?一个大大的service?又比如说,我之前就有写好的一个service,比较简单的业务逻辑,这次我需要开发的新接口中需要这个service的数据,但是不止,我当然要复用这个service是吧,这时候我就要在controller中调用几个service,然而组合service的这部分逻辑算不算逻辑?这样controller中就不只是校验和转发了,当小的service一多,这个怎么能不算业务逻辑,就又回去了。再者,service中调用service,我们最终调用一个最外层的service?这样controller就不用管了service的关系了,但是更不合理了。所以,求个大神解释解释
...全文
7900 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
imsorrybut 2019-10-29
  • 打赏
  • 举报
回复
controller负责业务组合及跳转这样子最合适
guobaoruxx 2018-01-16
  • 打赏
  • 举报
回复
感谢各位,稍微了解了,后续会多看一看相关书籍
柯南在写代码 2018-01-03
  • 打赏
  • 举报
回复
拿本语文书。看看控制和逻辑的意思
软件求生 2018-01-03
  • 打赏
  • 举报
回复
controller负责业务组合及跳转。 service负责业务实现。
化工厂很高 2018-01-03
  • 打赏
  • 举报
回复 1
你问到的这个问题,估计每个人都有不同的看法,我就这么说吧,你为什么写的controller,在web开发中,从ssh中的action变到ssm时,controller出现,很大的作用就是处理前台请求,返回后台响应的数据,根据springMVC分层,将数据处理过程放到dao、service中,controller控制逻辑,说白了,提高开发效率,提升项目代码可读性。当然,你完全可以想怎么写怎么写,但是,这个项目就你自己玩就行了。建议楼主,翻一翻java框架的书,看一下为啥我们开发用的框架技术要更新,而且更新的有啥不一样。
bossft_long 2018-01-03
  • 打赏
  • 举报
回复
要考虑到事务,你在controller和在service肯定不同啊,可以在service中调其他service,逻辑要写在service,若是特别复杂的逻辑,也可以写存储过程
ji1ji2ji3 2018-01-03
  • 打赏
  • 举报
回复
service写具体逻辑,至于controller你爱怎么弄就怎么弄,可以写逻辑也可以不写。
什么都不能 2018-01-03
  • 打赏
  • 举报
回复 3
程序这东西不只是你写完不报错能跑就行了,还要考虑性能、健壮性、可扩展、可维护,当然在90年代到2000年左右,你把所有的代码写到jsp,大家也都认为正常,因为大家都那么写。为什么要分层,为什么要搞那么多设计模式? 当然你可以不用考虑,你只要按照你们的技术标准做就行了,做得多了自然就会发现利弊了。
  • 打赏
  • 举报
回复
controller获取从页面传来的数据,然后简单处理或不处理直接调用一个或多个service去实现其逻辑。
Royal_lr 2018-01-02
  • 打赏
  • 举报
回复
从代码规范上讲,controller只是暴露接口就行了,service里面写具体逻辑,这样好维护点
maradona1984 2018-01-02
  • 打赏
  • 举报
回复 1
没有严格的标准,有些东西哪都可以写, 比如校验,拼装响应数据,哪方便写哪,但service不应该对request和response操作,controller不应该对数据库直接操作 多个service到底在controller调用还是service调用service主要还是要看业务主体了,不能一概而论 这么多规定只是让团队有一致的开发风格,用什么风格并不是很重要,都有道理,但最好用一种风格,这才是最重要的
xls丶 2018-01-02
  • 打赏
  • 举报
回复
只要不吃bug,你随意
kk_lucky 2018-01-02
  • 打赏
  • 举报
回复
你自己怎么高兴怎么来
  • 打赏
  • 举报
回复
你想要写就写呗,只不过是说controller里面不写业务逻辑符合mvc的一个设计思想
 课程目标:你将对研发框架的代码封装和开发规范制定的底层实现逻辑有所掌握,并形成自己的开发封装套路,告别CRUD课程简介:   1. 课程背景: 能帮你解决什么问题?企业通常由架构师搭建好开发框架,里面包含了很多封装好的基础结构,日志规范以及响应的异常统一处理,还有相应的参数校验等。很多初高级开发工程师没有机会接触这部分代码的逻辑,而这部分代码逻辑又是非线性的,单纯看代码逻辑是看不出来执行顺序的,需要大量调试总结。不像mvc代码结构,你知道从Controller层看到Service再到Dao层,而这样底层的基础性代码则像积木,不熟悉的前提下需要一块块的插入拔出,不断总结,而沿着本课程的顺序梳理与实战你将会豁然开朗。市面上的大多文章结构较散,并且处理不够全面,比如返回结构通常是 具体的正例与反例日志统一处理 统一异常处理及特殊的情况处理 参数优雅校验 1基础的校验 2. 自定义校验 3.分组校验最重要的是给大家捋顺了一个清晰的实现结构以上在我们后面章节Spring Boot HelloWorld的至少10个可扩展点里有更多的相关介绍,在核心章节里有更细致的讲解实现。理解框架升级底层逻辑: 全网首套基于Spring Boot 3.x+Java 17开发系列 SpringBoot3的升级背景和路线逻辑掌握代码重构及编码效率提升技巧学习基于最为前沿的Spring Boot 3.x 和 Java 17 开发代码依赖于Spring Boot 3.x Java 17环境开发穿插相应新版本的变化讲解可编完成一个生产级开发规范框架的制定 包含不限于 统一响应结构统一异常处理基于ThreadLocal处理请求RequestId基于日志框架的MDC 统一记录日志统一状态码处理Filter的异常及状态码处理,以及日志的完整性处理自定义优雅参数校验学习源码剖析方式方法等等 3. 课程规划1.  课程章节规划 2. 讲课方式代码实战为主+图文演示为辅例如说明后端校验的重要性 以一张图清晰明了的展示说明解答了为何前端有了前端校验还要后端校验的问题 3. 特别说明本课程所有代码使用版本会随着Spring Boot 3.x的开发进度而更新,直到Spring Boot 3.x的正式版本发布,可放心食用本课程的重点会侧重放在研发框架的基础规范编码上,并非专注于SpringBoot3.x和Java17的新特性上讲解。主要是两点原因,1课程的方向侧重点, 2. SpringBoot3.x 官方尚处于MileStone/Snapshot版并未Release,所以大家可关注本人编程燃风后续的产品课程。本课程代码同样适用于Spring Boot 1.x 2.x 只需微调API和相关库版本的即可(注意1.x已经归档不维护) 常见问题:问:是否讲解Java17和SpringBoot3新特性答:本课程的重点会侧重放在研发框架的基础规范编码上,并非专注于SpringBoot3.x和Java17的新特性上讲解。主要是两点原因,1课程的方向侧重点是框架基础规范编码实战 2. SpringBoot3.x 官方尚处于MileStone/Snapshot版并未Release,所以大家可关注本人编程燃风后续的讲解课程。问:代码仅限于SpringBoot3吗? SpringBoot2和SpringBoot1是否适用?答:本课程代码同样适用于Spring Boot 1.x 2.x 只需微调API和相关库版本的即可(注意1.x已经归档不维护)。另外本课程重点讲解代码封装和底层实现逻辑和具体API版本关联不大,只是基于最新的SpringBoot3和Java17实现而已,请放心使用。

81,091

社区成员

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

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