本篇主要讲解注解@Controller,@Repository(),@Service(),@RequestMapping(),Spring-MVC简介以及项目框架建立(这是基础框架创建哈,别看错了,如果是基本项目,我后几篇博客会继续更新的)
目录
一. Spring-MVC简介
1. 作用:
- 就是用来替代之前的servlet作用控制层的位置
- 使用了mvc架构模式思想,将web层进行,职责解耦
- Spring-MVC就是spring框架中的webmvc,也就是Spring-WebMVC
- 用来管理用户请求映射 请求地址和方法之间的映射
2. 功能:
- 清晰的角色划分:控制器(controller)、验证器(validator)、命令对象(command obect)、表单对象(form object)、模型对象(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、视图解析器 (view resoler)等等。每一个角色都可以由一个专门的对象来实现。
- 可适配、非侵入:可以根据不同的应用场景,选择何事的控制器子类(simple型、command型、from型、wizard型、multi-action型或者自定义),而不是一个单一控制器(比如Action/ActionForm)继承。
- 灵活的model转换:在Springweb框架中,使用基于Map的键/值对来达到轻易的与各种视图技术集成。特别的喜欢使用:map类型的参数model:basedao,StudentDAO,Student
- Spring MVC支持国际化,支持根据用户区域显示多国语言,并且国际化的配置非常简单。
- Spring-MVC提供了一个前端控制—DispatcherServlet因此开发者无须额外开发控制器对象。DispatcherServlet类似于私人秘书。
- Spring-MVC可以自动绑定用户输入,并正确地转换数据类型。例如:Spring-MVC能自动解析字符串,并将其设置为模型的int或float类型的属性。
3. 原理
这部分感觉放在进阶讲不太合适,毕竟也算是SpringMVC基础,我直接上原理图了哈。
说到底,据我个人理解哈,这原理图讲的就是SpringMvc根据用户发送的请求返回不同的响应和视图,其实并不难(当我没说) ,我下面再用文字尽量简单叙述一遍,以下各出现名词中英文选着记哈,以免装逼时不会。
- 用户发送请求到前端控制器,也就是中央处理器(DispatcherServlet)。
- 触发请求到处理器映射器(HandleMapping)找到对应的Handler(这时候返回的应该是Handle的名字,
个人猜测,因为我也没看源码TVT),HandleMapping返回Handler到DispatcherServlet。 - 再由DispatcherServlet发送Handler到处理器适配器(HandlerAdatper),根据Handler规则调度Handler
- 执行Handler后,返回模型与视图对象(ModelAndView)到DispatcherServlet。
- 再由DispatcherServlet发送ModelAndView到视图解析器(ViewResolver)对此对象进行进一步处理,并返回视图(view)到DispatcherServlet。
- 再由DispatcherServlet渲染ModelAndView,把数据转化为响应并返回给用户。
- 其他SpringMVC基本运用我会放在进阶说
4. 配置
(1). 配置Spring-MVC依赖
直接在原有的Maven项目下的pom.xml配置如下依赖即可
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version