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 的魔法,敬请期待!

相关文章
|
9月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
723 0
|
9月前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
9月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
9月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
640 4
|
9月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
779 2
|
9月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
793 8
|
10月前
|
人工智能 Java API
构建基于Java的AI智能体:使用LangChain4j与Spring AI实现RAG应用
当大模型需要处理私有、实时的数据时,检索增强生成(RAG)技术成为了核心解决方案。本文深入探讨如何在Java生态中构建具备RAG能力的AI智能体。我们将介绍新兴的Spring AI项目与成熟的LangChain4j框架,详细演示如何从零开始构建一个能够查询私有知识库的智能问答系统。内容涵盖文档加载与分块、向量数据库集成、语义检索以及与大模型的最终合成,并提供完整的代码实现,为Java开发者开启构建复杂AI智能体的大门。
5562 58
|
10月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
691 0
|
10月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
1032 117
|
10月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
7314 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API