Java Web中的mapper,service,controller,model究竟分别是什么作用?

Controller(控制层):后台总控制器,接收所有前台传过来的请求,再把它分配到它需要调的service里,相当于前后台的入口(Controller可以有多个,比如可以有10个不频繁访问的服务,可以用一个Controller来控制,另外两个访问频繁的用另一个Controller控制,分开均衡一点)
Services(业务层)【应用层】:所有的逻辑在Services里,逻辑,算法,都是由Services构成的(可以理解成Services里面写核心算法,比如if,else,通过JAVA来实现逻辑的变化,数据的变化)一个按钮对应一个service,所有请求先到controller里面,然后再去找它要哪个服务,再创建一个对应的实例。(简单的项目也可以不用控制器,直接前台调services,但一般都会有一个控制器来管理一下服务的请求)
Dao(持久层):接口(应用层和数据层的接口),只定义对象,不定义具体的内容,之所以有Dao,是为了让Services可以直接用里面定义好的东西,没有Dao的话是调不到的,相当于是在Services里调的是一个接口,Spring运行的时候Spring和Mybatis实时在里面生成方法,实际生成的方法在jar包里面。每添加一个方法,一个SQL,要在Dao里添加一个接口的定义。通过Dao找Mapper文件下的同名的SQL语句,一个Dao对应一个Mapper
Mapper【数据层】:写在xml文件里,里面写对应的SQL语句,实现在数据库中怎么查找。所有的xml都是配置文件,给程序去读取的
Model:保存着与数据库表所对应的结构体,作用是方便用表的结构体,增加Mapper的易用性,把所有SQL字段变成变量放在里面,根据表结构自动生成

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/liulang68/article/details/107443767