今天我们要学习的是如何用 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 的魔法,敬请期待!