首页 > 技术文章 > 各层之间的关系(易混淆)

subtlman 2021-12-13 11:13 原文

  • service是业务层,dao是数据访问层,controller是控制层,view是表示层。
  • 面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。
  • 初期也许都是new对象去调用下一层,比如你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用。
  • 控制层(controller)的职能是负责读取视图表现层的数据,控制用户的输入,并调用业务层的方法;
  • 业务层(service)需要根据系统的实际业务需求进行逻辑代码的编写,有些业务逻辑需要通过与数据库交互的,则业务逻辑层需要调用数据访问层的相关方法实现与数据库的交互,对于一些不需要与数据库进行交互的,则直接编写业务代码,将执行结果反馈给控制层即可;
  • 数据访问层(dao)只负责与数据库的数据交互,数据业务处理,持久化操作,将数据进行存储读取操作,可以这么理解数据层提供的东西仅仅作为业务层的一个模块,业务层包含的内容有很多。
  • 参考链接:https://www.cnblogs.com/beautiful-code/p/5271358.html 
  • ----------------------------------------------------------------------------------------------------------------------------------------------------------------
  • SpringBoot项目中model层、Dao层、Mapper层、controller层、service层、entity层作用
  • model(entity): model是模型的意思,与entity、domain、pojo类似,是存放实体的类,类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应一个model类。 主要用于定义与数据库对象应的属性,提供get/set方法,tostring方法,有参无参构造函数。
  • dao(mapper): 又被成为mapper层,叫数据持久层,先设计接口,然后在配置文件中进行配置其实现的关联。 dao层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。 数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中
  • service :业务逻辑层,完成功能的设计 和dao层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用dao层的接口进行业务逻辑应用的处理。 service的impl是把mapper和service进行整合的文件 封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。
  • 拓展:有的代码风格是service层=service接口+serviceImpl实现类;有的代码风格是service层=service类;参考链接:https://blog.csdn.net/zxx901221/article/details/88633977
  • controller :控制层,控制业务逻辑service,控制请求和响应,负责前后端交互 controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也要在配置文件中进行
  • ------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • SpringBoot 各层之间的关系
  • SpringBoot 分为四层:controller层、service层、dao层、entity层
    entity层:和model层一样,存放的是实体类,属性值与数据库值保持一致,实现setter和getter方法
    dao层:即mapper层,对数据库进行持久化操作,他的方法是针对数据库操作额,基本上用的就是增删改查,就是一个接口,只有方法名,具体实现在mapper.xml中。
    service层:业务层,存放业务逻辑处理,不直接对数据库进行操作,有接口和接口实现类,提供controller层调用方法。
    controller层:控制层,导入service层,调用你service方法,controller通过接收前端传来的参数进行业务操作,在返回一个指定的路径或数据表。
    constant:常量包,存放一些常量数据,如定义服务器响应状态码。
    controller:控制器,存放各种控制器,来提供数据或者返回界面
    entity:实体类包,存放各种与数据库对应的实体类
    mapper:存放返回数据json的格式样式 ;mapper 翻译 映射器,映射对象
    service:返回数据给控制调用
  • dao 与数据库的操作,增删改查等方法
  • model 一般都是javabean对象,例如与数据库的某个表相关联。
  • service 供外部调用,等于对dao,model等进行了包装。
  • impl 以 impl结尾的类 一般是实现了某个或多个接口的类
  • util 通常都是工具类,如字符串处理、日期处理等

 

 

 
 

 

 
 

推荐阅读