Spring Boot专栏三:框架中的三个层Dao层、Service层和Controller层

Spring Boot专栏三:框架中的三个层Dao层、Service层和Controller层

Spring Boot架构

今天的专栏不谈代码的内容,谈一谈Spring Boot的架构设计。
首先声明,在这方面我也是门外汉。我刚开始接触Spring Boot的时候,是去年的12月初,那时候看着一大堆概念真的是一点也不懂。我希望大家最好能去书本或者官方定义中去找正确的定义,我的博客只能是加深一下理解,或者找个共鸣。有些地方我可能是理解错误的!!!大家千万不要被误解,希望能够一起讨论,一起进步

首先,我将Spring Boot大体分为Dao层、Service层和Controller层三个层,其实实际上还有一些层可以用到,但是我们一般使用到这三个就不错了。它们在项目中的地位是这样的:底层(模型Model层)-Dao层-Service层-Controller层-浏览器上可以看到的内容(视图View层)。模型和视图大家自然是了解了,模型就是最简单的Java类,一会我也会介绍;视图更多地是前端需要完成的内容。如果大家对MVC架构熟悉的话,就知道M和V之间需要C来作为沟通的桥梁。那么我们首先来看看Controller层做了什么。

Controller层

我觉得Controller层就是将用户的需求像洋葱一样,层层剥开,直到剥为一个个可以用数据库查询语言(sql语言)能够实现的地步。

Service层

我觉得Service层,一般来说就是一个过渡层,但是它会检查数据的合理性。举个例子:

网购生成订单时,不仅要插入订单信息记录,还要查询商品库存是否充足,购买是否超过限制等等。
引用来源:https://blog.csdn.net/LL142857/article/details/89242816

Dao层

我觉得Dao层的作用就是实现一些增删改查的数据库操作了,它也分为两部分,一部分直接是用java语言写的,在一个接口中写对应方法名即可;另一部分则是用xml语言,写与Mybatis有关的内容,其中的语言是与sql语句相关的。

Dao层、Service层和Controller层之间的关系

我觉得还是上面博客讲得妙,我自己没法想出更贴切的比喻,因此摘抄过来:

Controller层像是一个服务员,他把客人(前端)点的菜(数据、请求的类型等)进行汇总什么口味、咸淡、量的多少,交给厨师长(Service层),厨师长则告诉沾板厨师(Dao 1)、汤料房(Dao 2)、配菜厨师(Dao 3)等(统称Dao层)我需要什么样的半成品,副厨们(Dao层)就负责完成厨师长(Service)交代的任务。
引用来源:https://blog.csdn.net/LL142857/article/details/89242816

POJO & Bean类

其实这部分主要就是解释一下昨天的专栏里最后说的那句话——“普通的对象无法参与到Spring Boot项目中来,只有‘非常非常普通’的对象才能参与进来”。
我希望大家了解POJO和Bean的概念。实际上这两个概念是不同的,但我也没有办法正儿八经的讲出定义,只能将两者都这么解释:如果一个类,其中的所有实例变量都是private的,而且成功重载了set和get方法,另外还有全参构造方法和无参构造方法,那么就可以称这个类是个Bean类(意思就是它很简单,很基础)。POJO的话,全称是Plain Ordinary Java Object,中文可以叫做“持久化的普通Java对象”,和Bean类的区别大家可以自行查阅资料,我的一点点墨水就不误人子弟了。
还是希望大家自己学会“面向百度编程”或者“面向谷歌编程”,成为真正的大佬!

谢谢大家的阅读。

专栏第四节已经更新啦,传送门:Spring Boot专栏四:使用Spring Boot的框架,进行数据库的操作

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值