如何理解java中的MVC?
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
M(Model):模型,普遍叫做业务逻辑层,一般包名叫service
V(View):视图
C(Controller):控制器,连接V和M的桥梁,起控制调度的作用
下图是一个MVC模式运行的javaweb示意图:
当用户从浏览器发送请求后,相应的视图会接收到请求并且去到对应的控制层中匹配方法,此时控制层接收到信息后会去调用模型层中的业务逻辑方法,找到方法后调用相应dao层中数据增删改查的语句。在这个C层-M层-dao层的过程中传递数据我们需要一个数据载体,此时的实体类就充当这个角色;工具类比较多,一般是一些复用性的代码我们把它整理出来单独形成一个类,比如数据库连接Sqlconnection,框架中的Sqlsession等等…
主流的框架都对应MVC中的哪个层?mybatis和hibernate这两个框架是对数据访问持久层进行操作的,所以对应上图中的dao层;springMVC和stutrs2其实是一个控制器的效果,对应上图中的C层;M层是需要自己写的方法;V层一般用JSP来代替。spirng框架在MVC发挥的作用,它其实是起到一个整合的作用,可以把spring框架当作政府,其它框架是企业,spring起到一种管理的作用。
我们为什么需要理解MVC模式?我觉得有以下几点:第一、MVC模式有利于各个代码模块的分离,这不管是对我们的开发思维还是系统维护都有很大的帮助;第二、MVC模型的复用性可以让我们的迁移更加简便;第三、用MVC模式去看别人写的代码会很清晰明了的清楚每个代码模块的作用。