今天我们要学习的是如何用 Spring Boot 轻松整合 Spring 和 Spring MVC,就像搭积木一样简单!
为什么需要整合?
很多同学对 Spring、Spring MVC 和 Spring Boot 的关系傻傻分不清楚。想象一下,Spring 就像一个万能工具箱,里面有各种工具,而 Spring MVC 就像一把螺丝刀,专门用来处理 Web 请求。而 Spring Boot 就像一个神奇的工具箱,它已经提前把常用的工具(Spring 和 Spring MVC)放好了,并且帮你配置好了,你只需要打开就能直接使用,是不是超级方便?
实战演练:搭建一个简单的 Web 应用
光说不练假把式,让我们来搭建一个简单的 Web 应用,体验一下 Spring Boot 的魔力吧!
第一步:创建 Spring Boot 项目
你可以使用 Spring Initializr (https://start.spring.io/) 快速创建一个 Spring Boot 项目,就像从菜单点餐一样简单!选择你需要的依赖,比如 Spring Web,然后点击“生成”按钮,一个崭新的项目就诞生了!
第二步:编写 Controller
Controller 就像一位勤劳的接待员,负责接收用户的请求并做出响应。让我们创建一个 HelloWorldController 类,并添加一个处理 /hello 请求的方法:
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloWorldController {
@GetMapping("/hello")
@ResponseBody
public String hello(@RequestParam(name = "name", defaultValue = "World") String name) {
return String.format("Hello, %s!", name);
}
}
-
@Controller 注解告诉 Spring Boot,这是一个 Controller 类。
-
@GetMapping("/hello") 注解表示处理 GET 请求,路径为 /hello。
-
@RequestParam 注解表示从请求参数中获取值,参数名为 name,默认值为 World。
-
@ResponseBody 注解表示将方法的返回值直接作为响应内容返回。
第三步:添加 Thymeleaf 模板引擎
为了更好地展示数据,我们可以引入 Thymeleaf 模板引擎。在 pom.xml 中添加 Thymeleaf 依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
第四步:创建 Thymeleaf 模板
在 src/main/resources/templates 目录下创建一个名为 hello.html 的文件,内容如下:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<h1 th:text="'Hello, ' + ${name} + '!'"></h1>
</body>
</html>
-
th:text 属性用于动态设置标签文本内容。
第五步:修改 Controller
修改 HelloWorldController,使用 ModelAndView 返回数据和视图:
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloWorldController {
@GetMapping("/hello")
public ModelAndView hello(@RequestParam(name = "name", defaultValue = "World") String name) {
ModelAndView modelAndView = new ModelAndView("hello");
modelAndView.addObject("name", name);
return modelAndView;
}
}
-
ModelAndView 用于封装数据和视图信息。
-
addObject 方法用于向模型中添加数据。
第六步:启动应用
运行 Spring Boot 应用的主程序,就像按下魔法棒的启动按钮一样!打开浏览器,访问 http://localhost:8080/hello?name=Spring,你将会看到页面上显示 "Hello, Spring!"。
代码解析
-
@SpringBootApplication: 核心注解,开启自动配置,整合 Spring 和 Spring MVC
-
@Controller:标识控制器类
-
@GetMapping:映射 HTTP GET 请求
-
@RequestParam:获取请求参数值
-
@ResponseBody:将方法返回值作为响应体
-
Thymeleaf 模板引擎:用于渲染动态页面,简化 Web 开发
总结
通过上面的例子,我们可以看到,使用 Spring Boot 整合 Spring 和 Spring MVC 非常简单,你只需要关注业务逻辑的实现,而不用操心繁琐的配置。就像使用智能手机一样,你只需要知道如何使用各种 App,而不用了解手机内部复杂的硬件和软件是如何工作的.
希望今天的课程能够帮助你快速入门 Spring Boot!在接下来的课程中,我们将学习更多 Spring Boot 的魔法,敬请期待!