Spring MVC基础知识

来源:互联网 发布:java代码生成器原理 编辑:程序博客网 时间:2024/06/06 00:13

MVC:Model + View + Controller(数据模型+视图+控制器)

三层架构:Presentation tier + Application + Data tier(展现层+应用层+数据访问层)

MVC是存在三层架构的展现层,M 是数据模型,是包含数据的对象。V 是视图页面,包含 JSP、freeMarker、Velocity、Thymeleaf、Tile等,C 是控制器。

而三层架构是整个应用的架构,是由 Spring 框架负责管理的,一般项目结构中都有 Service层、DAO层,这两个反馈在应用层和数据访问层。

------------------------------------------------------------------------------------------

Spring MVC 提供了一个 DispatcherServlet 来开发 Web 应用。有两种实现方式:

1、Servlet2.5及以下的时候在Web.xml下配置<servlet>元素即可。

2、Servlet3.0+无web.xml的配置方式,在Spring MVC里实现 WebApplicationInitializer 接口便可实现等同于 web.xml的配置。

-------------------------------------------------------------------------------------------

Spring MVC 常用注解:

1、@Controller 注解在类上,表明这个类是 Spring MVC 里的 Controller,将其声明为 Spring 的一个 Bean,Dispatcher Servlet 会自动扫描注解了此注解的类,并将 Web 请求映射到注解了 @RequestMapping 的方法上,这里特别指出,在声明普通 Bean 的时候,使用 @Component、@Service、@Repository 和 @Controller 是等同的。@Service、@Repository、@Controller 都组合了 @Component 元注解;但在 Spring MVC 声明控制器 Bean 的时候,只能使用@Controller。

2、@RequestMapping 注解用来映射 Web 请求(访问路径和参数),、处理类和方法的。@RequestMapping 可注解在类或方法上,注解在方法上的@RequestMapping 路径会继承注解在类上的路径,@RequestMapping 支持Servlet的request和response 作为参数,也支持对 request 和 response 的媒体类型进行配置

3、@ResponseBody 支持将返回值放在 response 体内,而不是返回一个页面。很多基于 ajax 的程序的时候,可以以此注解返回数据而不是页面,此注解可放置在返回值前或者方法上。

4、@RequestBody 允许 request 的参数在request 体中,而不是在直接链接在地址后面。此注解放置在参数前

5、@PathVariable 用来接收路径参数,如 /user/101,可接收101 作为参数,此注解放置在参数前。

6、@RestController 是一个组合注解,组合了 @Controller 和 @ResponseBody,当开发一个和页面交互数据的控制的时候,需要使用此注解。


原创粉丝点击