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。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐