本节书摘来自异步社区《精通Spring MVC 4》一书中的第2章,第2.1节,作者:【美】Geoffroy Warin著,更多章节内容可以访问云栖社区“异步社区”公众号查看
第2章 精通MVC架构
在本章中,我们将会讨论MVC架构理念以及Spring MVC是如何实现这些理念的。
本章将会继续使用上一章的应用,并且会构建一些有意思的功能。目标是设计一个简单的页面,在这个页面上用户可以根据特定的条件(criteria)查询Tweet,并将其展现出来。
我们会让Spring MVC与一个现代化的模板引擎协作,这个引擎也就是Thymeleaf,并且还会试图理解这个框架的内部机制。引导用户在不同的视图间流转,最后,会借助WebJars和Materialize让应用在外观上看起来更棒。
2.1 MVC架构
大多数人对MVC这个缩写应该不会感到陌生。它代表的是模型(Model)、视图(View)和控制器(Controller),它会将数据和展现层进行解耦,被视为构建用户界面的一种很流行的方式。
自从在Smalltalk领域中提出这个理念,并在Ruby on Rails框架中采用之后,MVC就变得广受欢迎。
如图2-1所示,它的架构可以分为3层。
模型:包含了应用中所需的各种展现数据。
视图:由数据的多种表述所组成,它将会展现给用户。
控制器:将会处理用户的操作,它是连接模型和视图的桥梁。
图2-1
MVC背后的理念是将视图与模型进行解耦,模型必须是自包含的并且与UI无关。这样的话,基本上就可以实现相同的数据跨多个视图重用。其实,这些视图就是以不同的方式来查看数据。通过钻取(Drill down)或使用不同的渲染器(HTML、PDF),可以很好地阐述这一原则。
控制器会作为用户和数据的中间协调者,它的角色就是控制终端用户的可用行为,并引导他们在应用的不同视图间跳转。