Java 新手入门:Spring Boot 轻松整合 Spring 和 Spring MVC!

简介: Java 新手入门:Spring Boot 轻松整合 Spring 和 Spring MVC!

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

相关文章
|
23小时前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA
|
23小时前
|
JSON 前端开发 Java
【Java笔记+踩坑】SpringMVC基础
springmvc简介、入门案例、bean加载控制、PostMan工具的使用、普通和JSON和日期格式请求参数传递、响应JSON或jsp或文本、Rest风格
【Java笔记+踩坑】SpringMVC基础
|
1天前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
13天前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
15天前
|
存储 Java 程序员
Java中的集合框架:从入门到精通
【8月更文挑战第30天】在Java的世界里,集合框架是一块基石,它不仅承载着数据的存储和操作,还体现了面向对象编程的精髓。本篇文章将带你遨游Java集合框架的海洋,从基础概念到高级应用,一步步揭示它的奥秘。你将学会如何选择合适的集合类型,掌握集合的遍历技巧,以及理解集合框架背后的设计哲学。让我们一起探索这个强大工具,解锁数据结构的新视角。
|
17天前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【8月更文挑战第28天】在Java编程的世界里,异常处理是一块基石,它确保了程序的健壮性和可靠性。本文将通过深入浅出的方式,带你了解Java异常处理的基本概念、分类、以及如何有效地捕获和处理异常。我们将一起探索try-catch-finally结构的奥秘,并学习如何使用throws关键字声明方法可能会抛出的异常。此外,我们还会讨论自定义异常类的创建和使用,以及最佳实践。无论你是Java新手还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识,帮助你编写出更加稳定和可靠的代码。
|
17天前
|
编解码 网络协议 Oracle
java网络编程入门以及项目实战
这篇文章是Java网络编程的入门教程,涵盖了网络编程的基础知识、IP地址、端口、通讯协议(TCP和UDP)的概念与区别,并提供了基于TCP和UDP的网络编程实例,包括远程聊天和文件传输程序的代码实现。
java网络编程入门以及项目实战
|
2天前
|
Java 程序员
Java中的异常处理:从入门到精通
在Java编程的世界中,异常处理是保持程序稳定性和可靠性的关键。本文将通过一个独特的视角—把异常处理比作一场“捉迷藏”游戏—来探讨如何在Java中有效管理异常。我们将一起学习如何识别、捕捉以及处理可能出现的异常,确保你的程序即使在面对不可预见的错误时也能优雅地运行。准备好了吗?让我们开始这场寻找并解决Java异常的冒险吧!
|
13天前
|
Java 程序员 UED
Java 中的异常处理:从入门到精通
【8月更文挑战第31天】在Java编程的世界中,异常处理是保持应用稳定性的重要机制。本文将引导你理解异常的本质,学会如何使用try-catch语句来捕获和处理异常,并探索自定义异常类的魅力。我们将一起深入异常的世界,让你的代码更加健壮和用户友好。
|
13天前
|
Java 前端开发 Apache
Apache Wicket与Spring MVC等Java Web框架大PK,究竟谁才是你的最佳拍档?点击揭秘!
【8月更文挑战第31天】在Java Web开发领域,众多框架各具特色。Apache Wicket以组件化开发和易用性脱颖而出,提高了代码的可维护性和可读性。相比之下,Spring MVC拥有强大的生态系统,但学习曲线较陡;JSF与Java EE紧密集成,但在性能和灵活性上略逊一筹;Struts2虽成熟,但在RESTful API支持上不足。选择框架时还需考虑社区支持和文档完善程度。希望本文能帮助开发者找到最适合自己的框架。
25 0