写这个主要有两个方面的原因,第一就是为了加深一下自己的理解和记忆,第二则是为刚刚接触JavaWeb开发和没有正确认识分层的人接触一些疑惑。 首先先说数据访问层,这个层一般都叫做Dao(Data Access Object)层,主要就是用来和数据库打交道的,该层也目标和十分明确,就是需要我们在这层写一些最底层的方法,比如最常见的几种:save、update、deleteById、deleteAll、findById、findAll,以及一些封装的分页查询方法等等,当然也有一些比较通用的,比如用户登录和注册会根据用户名进行查询,我们自然会需要一个方法如findByUserName等。这层的宗旨只有一个,与数据库直接打交道,语句也要尽量的保证在本模块的通用性,比如多条件查询的方法findByParams,我们可以传递一个Map,来记录多个参数和多个值之间的对应关系,以便实现多条件的查询。 其次就是业务层(Service,Business,Biz均可),这个层对于初学者来说,第一反应就是和Dao没什么区别。不过随着项目经验的积累,我们会逐渐的感觉到,业务层其实才是Web开发的核心,是这几个层中最重要的东西。一个优秀的开发者,可以清晰的划分出业务层和数据访问层之间的界限。举个例子来说,用户登录这算是一个业务方法,在业务层我们要做的就是对这个业务进行逻辑的拆分,然后将用户登录这个业务方法暴露给上层(可能是控制层,也可能直接暴露成为接口)。而业务的拆分也很简单,用户登录无外乎根据用户名查询用户,并判断密码的正确性之后将成功与否(true/false)返回上层即可。再举个例子,有时候我们会遇到一些情况,比如某个实体(Book)会有多个类型:英语类(type=1)、计算机类(type=2),但我们需要分开查询两个类型的实体(两个查询方法,findEngBookByParams和findPcBookByParams),这时,我们只需要在业务方法的逻辑中,分别在findEngBookByParams和findPcBookByParams的Map参数集合中,put入type=1和type=2即可,并不需要去数据访问层再写方法。 至于控制层,主要就是对业务方法的调用和一些response的处理而已,并没有太多可说的。 数据访问层和业务层有时候确实很相似,尤其是在一些简单的Web应用中,很难区分两者,所以只有不断的增长项目经验,不断的去思考,才能真正的理解这两层分层的真正意义。

java 控制层和业务层,控制层、业务层和数据访问层相关推荐

  1. 持久层和数据访问层_什么是持久层? JDBC 演变的 Mybatis 架构分析

    前言 ORM 持久层指的是:将业务数据存储到磁盘,也具备长期存储能力,只要磁盘不损坏,如果在断电情况下,重启系统仍然可以读取数据 01.JDBC 1.1 什么是 jdbc JDBC(JavaDataB ...

  2. MyGeneration学习笔记(1) : 使用MyGeneration生成存储过程和数据访问层代码

    MyGenertion是一款不错的代码生成ORM代码生成工具,下面是我学习过程中的一些笔记(总结了一下dOOdads C# Quick Reference文档,还有自己在使用和调试过程中遇到的问题及自 ...

  3. 抽象工厂+反射+依赖注入 实现对数据访问层和业务逻辑层的优化

    分层思想的一个核心就是部件化,各个层之间是相互独立的,每一层可以随便抽取换成一个其他语言的版本,但只要与相应的接口吻合就行. 我用的三层架构大致是这样的,基本的三层就不说了,然后分别为业务逻辑层和数据 ...

  4. 细说业务逻辑 -- 丢失的业务逻辑层

    前言 记得几个月前,在一次北京博客园俱乐部的活动上,最后一个环节是话题自由讨论.就是提几个话题,然后大家各自加入感兴趣的话题小组,进行自由讨论.当时金色海洋同学提出了一个话题--"什么是业务 ...

  5. 中台设计和实践:海量并发业务中台,新业务秒级接入交易中台

    孙玄 奈学教育CEO 读完需要 10 分钟 速读仅需 3 分钟 10年技术老兵,擅长系统架构设计.大数据.运维.机器学习.技术管理等领域: 曾供职于百度.58集团.转转等公司. 本文根据孙玄老师在[d ...

  6. [4G5G专题-100]:MAC层 - 调度 - 4G LTE物理信道的功率控制3 - 上行信道功率控制

    目录 第1章 上行功率控制概述 1.1 上行业务流程 1.2 上行功率控制的分类 1.3 下行信道的功率传输损耗 第2章 PRCH信道功率控制 2.1 PRACH开环功率控制的基本流程 2.2 PRA ...

  7. linux架构接口层教程,在LINUX平台上进行成功实现RIL层功能和框架层应用

    1.课题研究的背景和意义 1.1 Android RIL简介 Android RIL(Radio Interface Layer)提供了无线基带Modem与电话应用之间的抽象层.在Android RI ...

  8. controll层跳转页面_java web开发中的各种层

    java后端开发前,还是应该将各种层划分好,知道各自的作用,今天做一下总结. Dao层.Entity层.Service层.Controller层.view层 1.Dao层(持久层.数据访问层) 功能: ...

  9. 边做边学小型封装--利用主流框架进行Dao层通用化,Spring3.0+Hibernate3.3.2通用Dao层整合(四)...

    了解Dao层的创建和HibernateSupportDao后,忘了要把Spring3.0的Jar包加进去lib文件夹里面,由于Spring3.0开始没有把所有需要有关联的Jar包跟功能整合包放在一起, ...

  10. [4G5G专题-56]:L2 MAC层-逻辑信道到物理信道的映射、MAC层包或PDU格式、MAC层复用与解复用

    目录 第1章  L2 MAC层的架构 1.1 RAN的架构 1.2 L2 MAC层的架构 1.3 MAC层的帧调度功能 第2章 逻辑信道到物理信道的映射 2.1 映射示意图 2.2 逻辑信道 2.3 ...

最新文章

  1. svn 回归某一个特定版本
  2. SpringBoot+WangEditor上传图片
  3. 电脑磁盘空间不足怎么办_IT干货 丨 电脑C盘存储空间不足怎么办?
  4. Jenkins deploy to container部署war到tomcat(学习笔记十六)
  5. nanopi联网更新
  6. 【渝粤教育】国家开放大学2018年春季 建筑结构基础 参考试题
  7. Hbase Import导入数据异常处理-RetriesExhaustedWithDetailsException
  8. php 延时显示代码,php 延时显示代码
  9. JS-函数(调用返回值)-形参实参-作用域
  10. 转发:一个复杂系统的拆分改造实践
  11. 百度地图实现定位功能及城市选择
  12. 跨境电商:YouTube视频营销必看攻略
  13. lodop直接打印服务器的文件,C-Lodop云打印服务器
  14. [NOI Online 2021 入门组] 切蛋糕
  15. 独家连载 | 深度学习“四大天王”,你知道几个?
  16. 创建zemax非序列光学系统
  17. android rgmap,Android版的数字地质填图系统开始应用测试
  18. 一、判别一个分解的无损连接性
  19. 2013手机游戏引擎趋势:竞争升级
  20. 文档中如何插入计算机剪贴画,如何在Word中使用菜单命令插入图片和剪贴画

热门文章

  1. 一位全减器逻辑电路图_一种一位全减器电路的制作方法
  2. android 日历折叠,可折叠的日历控件Calendar
  3. 嵌入式大佬 | 嵌入式C语言知识点万字总结
  4. 遗传算法之TSP问题
  5. 基于OPENCV的OCR身份证号识别技术
  6. centos 6.8 安装mysql
  7. 永洪BI产品体验(一)数据源模块
  8. pe系统测试软件,PE实测:测试环境及PE制作
  9. iOS 地址智能解析器(收货地址 或 寄件地址)
  10. 基于java高校教师管理系统_高校教师电子业务档案管理系统