这里我对平常我们用的Spring MVC+Spring+Mybatis,简称ssm框架做一个简单介绍,下图为什什么ssm的一个描述图(其中nginx为云端部署时需要的,这里可不理会):
图片说明
ssm将服务端分成三层,视图层、业务层和数据层,这三个层又分别有自己的控制组件,数据层(很显然是数据库相关)交由Mybatis处理。视图层主要是和前端页面进行沟通,它走的是http协议,它要能够解析前端传来的数据,也要返回前端要的数据,这是两件事,那么就需要两个组件去解决分别是Controller和ViewResolver(MVC中的C和V)。Controller,由它处理由客户端传来的请求;ViewResolver,由它给前端返回相应结果,有时相响应不仅仅是仅有数据的,还可能是HTML页面,那么就需要ViewResolver去渲染;M就代表Model,也就是数据。最后是Spring,但是Spring并不仅是业务层的控制组件,Spring实际上控制的是整个服务端的核心对象,我们称之为Bean,正是因为这些对象之间并不是孤立存在的,而是相互联系的,所以才需要Spring加以管理,管理的目的是降低程序间的耦合度,做到可插拔(例如对象A今天想用B接口,明天想用C接口,很容易实现)。
举个例子,客户端给服务器发一个request请求,Controller解析请求信息,然后交给业务层去执行加加减减合并的操作,然后访问数据库当然是交由数据层去做,最后返回的可能是一个User类,但是用户要的不是一个类而是一个页面,所以就需要ViewResolver给前端返回页面,那它返回页面还需要一个数据,这个数据就得Controller给,通过什么给,就是Model(MVC中的M),在Spring MVC中,Controller给ViewResolver传数据就是用Model做封装的。所以spring MVC就是包含了控制组件Controller、数据组件Model、视图组件ViewResolver这三个组件。