Controller层和Service层具体区分

本文探讨了控制器(controller)与服务层(service)在软件架构中的角色,强调了如何正确划分业务逻辑,如何通过service封装DAO操作并确保事务一致性,以及如何为API和RPC提供统一服务接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

controller层,主要用于给前端返回数据的以及接收前端的数据的,

service层,总之就是处理数据用的。

  1. 处理controller层传过来的数据然后传给给dao层链接数据库进行增删改查,
  2. 从dao层传过来的数据的处理,比如封装成JavaBean。

涉及请求、参数、序列化之类的逻辑可以放在controller。
而具体到数据的操作逻辑,也就是增删改查的操作都应该完整封装到service中。

一方面是对于事务的要求,比如一个请求过来,后台需要多步增删改查,一般都要求放到一个service方法中也就是同一段事务里。另一方面也是为了提供统一的接口,有的业务除了本地的controller还会需要服务间通信,比如rest api或者rpc什么的,最后他们都应该从同一个service拿到一致的基础数据,然后由各自的controller按各自的需求加工后返回。

Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。
service是将dao层的增删改查基本操作调用过来,封装到servce类中,集成一个服务。

Controller层:业务层,管理用户的操作,用户界面传过的请求,调用对应的服务(service),完成用户请求的处理。

service层就是处理业务逻辑。但是在项目中,有时候在控制层也有业务逻辑。
业务逻辑代码太薄的话放在controller也没关系。涉及修改数据的,有事务控制的,需要放service。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Whitemeen太白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值