简单了解Spring MVC

你的名字 2022-11-29 12:50 258阅读 0赞

Spring MVC从一开始就定位于一个较为松散的组合,展示给用户的视图(View)、控制器返回的数据模型(Model)、定位视图的视图解析器(ViewResolver)和处理适配器(HandlerAdapter)等内容都是独立的。也就是说,通过Spring MVC框架很容易把后台的数据转换为各种类型的数据,以满足移动互联网数据多样化的要求。再加上Spring MVC是基于Spring基础框架派生出来的Web框架,所以它天然的就可以十分方便地整合到Spring框架中。基于这些特点,Spring MVC已经成为当前最主流的Web开发框架。

当今的MVC(Model-View-Controller)框架已经很盛行,它不单单应用于Java的开发,也广泛地应用于其他系统的开发。那么,MVC的框架和基本的流程又是怎样的呢?

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppYW9tdWJhaQ_size_16_color_FFFFFF_t_70 Spring MVC框架设计图

如上框架图所示,Spring MVC的运行流程为:处理请求先到达控制器(Controller),控制器的作用是进行请求分发,这样的话,它就会根据请求的内容去访问模型层(Model);在现今的互联网系统中,数据主要是从数据库中来,而且对于数据库而言往往还存在事务的机制,为了适应这样的变化,设计者会把模型层再次细分为服务层(Service)和数据访问层(Dao);当控制器获取到由模型层返回的数据后,就将数据渲染到视图层(View)中,这样就能够直接展现给用户了。

那么,关于Model层、View层和Controller层的具体功能和各层之间的联系又是怎样的呢?

Dao层:数据访问层,全称为Data Access Object,主要做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作。所谓的与数据库进行联络主要就是指对数据库表的增删改查的基础操作。dao层的设计首先是要设计出dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,dao层的数据源配置,以及有关数据库连接参数都在Spring配置文件中进行配置。

Service层:服务层,又称业务层,业务逻辑层。主要负责业务模块的应用和逻辑应用的设计。使用时同样是首先设计接口,再设计其实现类,接着在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用service接口来进行业务处理。service层的业务是要具体调用已经定义的dao层接口,封装service层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。粗略的理解就是service层能够对一个或多个DAO进行再次封装,封装成一个服务,所以也就不会是一个原子操作了,需要事务来进行控制。

View层:视图层,又称展示层。负责前端页面的展示和渲染。

Controller层:控制层。负责具体业务模块流程的控制,即调用Service层的接口来控制业务流程。同时也负责请求转发,接收页面传过来的参数,交给Service层处理,之后再接收Service层的返回结果,传给页面显示。

关于以上内容,最重要的一点是:Service层建立在DAO层之上,Controller层之下。调用Dao层的接口,同时为Controller层提供接口。

总结一下的话其实就是,表示层调用控制层,控制层调用业务层,业务层调用数据访问层的这样一个层层调用的关系。需要注意的是,View层与Controller层结合紧密,常常需要协同开发,业务层和数据访问层与其他层之间的耦合度都比较低,可以单独开发。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppYW9tdWJhaQ_size_16_color_FFFFFF_t_70 1

发表评论

表情:
评论列表 (有 0 条评论,258人围观)

还没有评论,来说两句吧...

相关阅读

    相关 简单了解Spring MVC

    Spring MVC从一开始就定位于一个较为松散的组合,展示给用户的视图(View)、控制器返回的数据模型(Model)、定位视图的视图解析器(ViewResolver)和处理