Springboot的 entity,dao,service,controller层级理解(从最底层向上的顺序)_未央1117的博客-程序员秘密

技术标签: SpringBoot  

1.Entity层:实体层,数据库在项目中的类

主要用于定义与数据库对象应的属性,提供get/set方法,tostring方法,有参无参构造函数。

2.Dao层:持久层,主要与数据库交互

DAO层首先会创建Dao接口接着就可以在配置文件中定义该接口的实现类;接着就可以在模块中调用Dao的接口进行数据业务的处理,而不用关注此接口的具体实现类是哪一个类,Dao层的数据源和数据库连接的参数都是在配置文件中进行配置的。

3.Service层:业务层 控制业务

业务模块的逻辑应用设计,和DAO层一样都是先设计接口,再创建要实现的类然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。

好处:封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。

4.Controller层:控制层 控制业务逻辑

具体的业务模块流程的控制,controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也要在配置文件中进行

Controller和Service的区别是:Controller负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计

           总结:具体的一个项目中有:controller层调用了Service层的接口方法,Service层调用Dao层的方法,其中调用的参数是使用Entity层进行传递的。

5、View层 此层与Controller控制层结合比较紧密,需要二者结合起来协同工作。View层主要负责前台jsp页面的表示。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liang841451955/article/details/96423422

智能推荐

Android音量调节(二)音量处理及UI刷新_systemui音量条_陈顺龙的博客-程序员秘密

前言第一篇:Android音量调节(一)音量键的处理流程由于时间跨度过久,这篇博客也由第一篇的基于Android 8升级为了Android11。本来是想衔接第一篇直接去写AudioService.java里面通知音量改变之后SystemUI里面的处理,但是当我去查看并分析源码的时候,慢慢的慢慢的就把SystemUI的启动过程给看完了,想了一下,于是决定先分析SystemUI的启动过程,然后再去衔接第一篇去分析音量条的处理过程。在整个系统App里面,SystemUI这个App非常的复杂,在Androi

STM32F407+RT_Thread使用FATFS文件系统操作SD卡_stm32格式化sd卡_苗天兵的博客-程序员秘密

STM32F407+RT_Thread使用FATFS文件系统操作SD卡。最近在搞基于rt_thread操作系统的项目,其中使用了fatfs文件系统操作SD卡,过程中遇到了一些问题,解决之后想在这里和大家分享一下。

Latex 使用\subfigure 报错missing insert_latex subfigure报错_qq_38375025的博客-程序员秘密

Latex 使用\subfigure 报错missing insert在使用\subfigure的时候突然报错说missing insert,然后提示extra ‘}’,试了很多方法都不行。后来在看关于extra ‘}’报错信息的文章时发现大多是一些公式的特殊符号使用有误造成的,我就想到会不会是我在\subfigure里用了特殊符号导致出错。结果确实是特殊符号导致的问题。\subfigure的格式是:\subfigure[*这里是子图标题*]{*图片文件名*},在子图标题那里,如果有特殊符号就一定要加“

STM32 HAL库 实现基于SPI模式的SD卡、TF卡FATS文件系统+模拟U盘的应用笔记_tf卡spi模式_专业业余临时工的博客-程序员秘密

很多单片机不带SDIO接口,所以在使用SD卡时必须使用SPI模式进行读写。 想做一个基于SPI的SD卡文件系统读写SD卡上的文件,再配合USB接口做一个模拟U盘。只能利用业余时间慢慢更新,也不知道能不能坚持下去。 我会把从零开始开发一个程序需要经历的过程一一的记录下来。做成一个奶妈级的单片机开发笔记。一、硬件简介 1.SD卡和MicroSD卡(TF卡)的区别 由下图可以很容易的看出TF卡只是比SD卡少了一个3脚Vss脚,其它的管脚顺序

replace替换字符串中的字符_sxs1995的博客-程序员秘密

var data = “数据1,数据2,数据3” data.replace(“,”,”+”);//只能替换掉第一个,号。result ==>”数据1+数据2,数据3” var reg = new RegExp(“,”,”g”);//g,表示全部替换。 data.replace(reg,”+”);result ==> “数据1+数据2+数据3”

随便推点

libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found 的应对策略(没错libstdc++.so.6又又又坏了)_find libstdc++_生信浪客的博客-程序员秘密

好久没有用qiime2了,今天看了qiime2 sidle插件的使用说明,想用这个插件尝试一下5R 16S,但是报错了:qiime sidle trim-dada2-posthoc \ --i-table table-dada2.qza \ --i-representative-sequences rep-seqs-dada2.qza \ --p-trim-length 100 \ --o-trimmed-table table-dada2-100nt.qza \ --o-t...

初识lct——洛谷p3203 bzoj2002 [HNOI2010]BOUNCE 弹飞绵羊_Cold_Chair的博客-程序员秘密

题目大意:现在有n个装置,每个装置会弹到一个地方(编号一定在它之后),也可能直接弹了出去,动态修改会弹到的地方,和动态查询从一个装置出发多少次会被弹出去。

了解这个CSS属性:clamp(),自适应布局,事半功倍!_clamp属性_ToBeOrNotToBe_Up的博客-程序员秘密

clamp()MDN Web Docs说明The clamp() CSS function clamps a value between an upper and lower bound. clamp() enables selecting a middle value within a range of values between a defined minimum and maximum. It takes three parameters: a minimum value, a preferr

无sudo权限解决ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found-程序员秘密

无sudo权限解决 ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

LINUX DNS SERVER_weixin_34110749的博客-程序员秘密

一、挂载光驱并安装DNS服务mkdir /mnt/cdrommount /dev/cdrom /mnt/cdromcd /mnt/cdrom/CentOSfind -name "bind*"rpm -ivh bind-***********略二、配置DNS必要文件cd /var/named/chroot/var/etccp -p named.caching-nameserve...

AstroNova智能数据记录仪DDX100_fanret8的博客-程序员秘密

美国AstroNova智能数据记录仪DDX100美国AstroNova智能数据记录仪DDX100,是最新的数据采集记录产品,可提供所有必需的工具,包括对任何信号的显示,采集,虚拟分析。该信号采集记录仪器为便携式设备,功能强大,适用范围包括汽车、电力、工业、航空及交通运输等。因其模块化输入,方便的触摸式界面以及强大的数据采集能力,它是所有工程师的理想工具。

推荐文章

热门文章

相关标签