浅谈Spring MVC
一、基本介绍
Spring MVC是Spring框架的一个模块,它提供了一种实现Web应用程序的模型-视图-控制器(MVC)模式的方法。Spring MVC通过将请求处理的职责分离成三个主要组件:模型(Model)、视图(View)和控制器(Controller),来帮助开发人员构建灵活且易于维护的Web应用程序。
二、关键特性
1、请求驱动:Spring MVC基于请求驱动,这意味着它依赖于请求来执行业务逻辑。
2、控制器:控制器负责接收请求,并调用业务逻辑处理请求,然后将模型和视图返回给用户。
3、模型:模型代表应用程序的数据结构,通常由POJOs(Plain Old Java Objects)组成。
4、视图:视图负责渲染模型数据,通常是一个HTML页面,但也可以是JSON、XML等格式。
5、分发器:DispatcherServlet
是Spring MVC的前端控制器,它负责将请求路由到相应的控制器。
6、数据绑定:Spring MVC提供了强大的数据绑定功能,可以将请求参数自动绑定到控制器方法的参数上。
7、验证:Spring MVC支持验证用户输入,确保数据的准确性和完整性。
8、国际化:Spring MVC支持国际化,允许应用程序根据用户的地区设置显示不同的内容。
9、主题:Spring MVC支持主题,允许应用程序根据用户的偏好设置不同的样式。
10、REST支持:Spring MVC提供了对RESTful Web服务的支持,使得构建RESTful应用程序变得更加简单。
11、集成:Spring MVC可以轻松集成Spring的其他模块,如Spring Security、Spring Data等。
三、代码示例
1. Maven依赖
首先,确保你的pom.xml
文件中包含了Spring MVC和Spring Boot的依赖。Spring Boot可以简化配置:
<dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Boot Starter Thymeleaf --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- Spring Boot Starter Test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>
2. Spring MVC配置
如果你使用的是Spring Boot,通常不需要额外的配置文件,因为Spring Boot会自动配置Spring MVC。如果你需要自定义配置,可以在application.properties
或application.yml
中进行配置。
3. 控制器(Controller)
创建一个控制器来处理HTTP请求:
package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
public class GreetingController {@GetMapping("/greeting")public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {model.addAttribute("name", name);return "greeting";}
}
4. 模型(Model)
在这个例子中,模型是通过Model
对象传递的,它将数据从控制器传递到视图。
5. 视图(View)
使用Thymeleaf作为模板引擎来创建视图:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><title>Greeting</title>
</head>
<body><h1 th:text="${name}">Hello, World!</h1>
</body>
</html>
将这个文件保存为src/main/resources/templates/greeting.html
。
6. 主应用程序类
创建一个Spring Boot应用程序的主类:
package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}
7. 运行应用程序
运行DemoApplication
类,然后访问http://localhost:8080/greeting?name=Kimi
,你将看到页面显示“Hello, Kimi!”。