SpringMVC框架学习

java 学习笔记指路

基础知识

Python转java补充知识
Java中常见的名词解释

前端

【黑马程序员pink老师前端】HTML
【黑马程序员pink老师前端】JavaScript基础大总结
【黑马程序员pink老师前端】JavaScript函数与作用域
【黑马程序员pink老师前端】JavaScript对象

数据库

【黑马程序员数据库】数据库基础大总结
【黑马程序员数据库】数据库引擎
【黑马程序员数据库】数据库索引

SQL编程

【牛客】SQL刷题篇入门篇
【牛客】SQL刷题篇进阶篇

Java 框架

spring框架学习
SpringMvc框架学习
SpringBoot 框架学习
Mybatis-plus 快速入门
Maven基础
Zookeeper初认识
HTTP简介
Tomcat
Servlet
vue入门

目录

SpringMvc框架中的Controller层、Service层、Dao层关系和作用

  • dao(数据访问层):负责与数据打交道。通过Spring配置文件与数据库进行连接,封装了对数据库进行增删改查的基本操作。
  • service(服务层):建立在dao层上面,controller下面,提供服务。对一个dao或多个dao进行再次封装,封装成一个服务类。
  • controller(业务层):负责各个模块的管理控制;负责url映射地址。管理用户操作,根据用户请求来调用对应服务以便完成请求处理等;对service进行调用。

其中dao与service层在开发中,需要先进行接口的设计,接着再设计实现接口的类。

之所以这样会是因为会更符合MVC模式的理念,也符合大多数人的编程习惯,并且极大减少了开发的工作量,使其后期维护也较为轻松,更为重要的一点是可以极大地保障数据的安全,防止controller层对数据库直接进行操作。

Controller:接收参数,告诉Service层我要增、删、改这个角色,并且返回结果

service:负责处理增、删、改角色的逻辑,也就是增、删、改完角色还要增、删、改用户

Dao:负责把Service交代的东西真正的增、删、改掉

Service层是建立在Dao层之上的,建立了Dao层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用Dao层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

Controller层

Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

Controller层负责具体的业务模块流程的控制,在此层要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。我们具体的设计过程可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块。这样不仅使程序结构变得清晰,也大大减少了代码量。

Service层

简单来说就是对一个或多个Dao进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。

Service层主要负责业务模块的应用逻辑应用设计。同样是首先设计接口,再设计其实现类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实,具体要调用已经定义的Dao层接口,封装Service层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。程序显得非常简洁。

Dao层

Dao层属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个Dao一定是和数据库的某一张表一 一对应的,其中封装了增删改查基本操作,建议Dao只做原子操作,增删改查。

负责与数据库进行联络的一些任务都封装在此,Dao层的设计首先是设计Dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,Dao层的数据源配置,以及有关数据库连接参数都在Spring配置文件中进行配置。

框架和 mybatis之间的关系

相关推荐
我们从未走散24 分钟前
设计模式学习笔记-----单例模式
java·笔记·学习·单例模式·设计模式
期待のcode28 分钟前
Maven
java·spring·maven·mybatis
宇寒风暖5 小时前
@(AJAX)
前端·javascript·笔记·学习·ajax
菜菜子爱学习9 小时前
Nginx学习笔记(八)—— Nginx缓存集成
笔记·学习·nginx·缓存·运维开发
chillxiaohan10 小时前
GO学习记录五——数据库表的增删改查
数据库·学习·golang
憨憨の大鸭鸭11 小时前
python爬虫学习(2)
爬虫·学习
郑州吴彦祖77214 小时前
Spring MVC快速入门
spring·springmvc
_hermit:14 小时前
【从零开始java学习|第六篇】运算符的使用与注意事项
java·学习
Warren9814 小时前
MySQL,Redis重点面试题
java·数据库·spring boot·redis·mysql·spring·蓝桥杯
卓码软件测评15 小时前
网站测评-利用缓存机制实现XSS的分步测试方法
java·后端·安全·spring·可用性测试·软件需求