当前位置: 首页 > news >正文

【Spring Boot】Spring Boot + Thymeleaf搭建mvc项目

Spring Boot + Thymeleaf搭建mvc项目

      • 1. 创建Spring Boot项目
      • 2. 配置pom.xml
      • 3. 配置Thymeleaf
      • 4. 创建Controller
      • 5. 创建Thymeleaf页面
      • 6. 创建Main启动类
      • 7. 运行项目
      • 8. 测试结果
      • 扩展:添加静态资源

1. 创建Spring Boot项目

  1. 打开IntelliJ IDEA → New Project → 选择Maven → 直接点击Create
  2. 输入项目名称:springboot-demo
    确认GroupId(如:vip.buddha)和ArtifactId(保持与项目名一致)

2. 配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.0</version> <!-- 选择一个 2.x 版本 --></parent><groupId>vip.buddha</groupId><artifactId>springboot-demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies></project>

依赖中无需指定版本的条件

  • 当依赖项属于 Spring Boot 官方提供的 Starter(如 spring-boot-starter-*),且父 POM 已通过<dependencyManagement> 管理其版本时。

需要指定版本的条件

  • 使用非 Spring Boot 官方维护的第三方库(如 com.google.guava),此时必须显式指定版本。

3. 配置Thymeleaf

Spring Boot默认已配置Thymeleaf,但你可以自定义设置。在 src/main/resources/application.yml 中添加:

server:port: 8080
spring:application:name: springboot-demothymeleaf:# 开发时建议开启缓存cache: false# 设置编码encoding: utf-8

4. 创建Controller

src/main/java/vip/buddha/controller 下新建一个Java类 HelloController.java

package vip.buddha.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;@Controller
public class HelloController {@GetMapping("/hello")public String sayHello(Model model) {model.addAttribute("message", "Hello, Thymeleaf!");return "hello"; // 对应src/main/resources/templates/hello.html}
}

5. 创建Thymeleaf页面

src/main/resources/templates 下新建 hello.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Spring Boot + Thymeleaf</title>
</head>
<body><h1 th:text="${message}">默认消息</h1>
</body>
</html>
  • th:text="${message}" 会替换为Controller中设置的 message 值。

6. 创建Main启动类

src/main/java/vip/buddha 下新建一个Java类 Main.java

package vip.buddha;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Main {public static void main(String[] args) {SpringApplication.run(Main.class, args);}
}

7. 运行项目

创建完毕目录结构如下:
在这里插入图片描述

  1. 找到主类 Main.java,右键运行 main 方法。
  2. 控制台输出 Started Main 表示启动成功。
  3. 访问 http://localhost:8080/hello 查看页面。

8. 测试结果

页面会显示:

Hello, Thymeleaf!

Spring Boot 的启动类(Main Class)是整个应用程序的入口点,负责初始化 Spring 上下文并启动应用。

@SpringBootApplication组合了以下三个注解的功能:

  • @SpringBootConfiguration(标记当前类为 Spring Boot
    的配置类);

  • @EnableAutoConfiguration(启用 Spring Boot 的自动配置机制);

  • @ComponentScan(自动扫描当前包及其子包下的组件(如 @Controller, @Service, @Repository
    等))


扩展:添加静态资源

  1. src/main/resources/static 下放置CSS/JS文件(如 style.css)。
  2. 在HTML中引用:
<link th:href="@{/style.css}" rel="stylesheet">

在这里插入图片描述

相关文章:

  • Kubernetes控制平面组件:Controller Manager 之 内置Controller详解
  • SpringBoot企业级开发之【文章列表(条件分页)】
  • 利用 Python pyttsx3实现文字转语音(TTS)
  • 如何使用QWidgets设计一个类似于Web Toast的控件?
  • js获取明天日期、Vue3大菠萝 Pinia的使用
  • Unity:Surface Effector 2D(表面效应器 2D)
  • C++入门(上)--《Hello C++ World!》(1)(C/C++)
  • 学习海康VisionMaster之亮度测量
  • 【Bootstrap V4系列】学习入门教程之 组件-按钮组(Button group)
  • Spring 框架的底层原理
  • linux 高并发 文件句柄数 fs 及 tcp端口数调优
  • 【心海资源】telegram换U地址完整源码
  • 【算法学习】递归、搜索与回溯算法(一)
  • # 部署深度学习模型:Flask API 服务端与客户端通信实战
  • 手写 Vue 源码 === reactive 方法
  • Vim 命令从头学习记录
  • Java设计模式: 工厂模式与策略模式
  • 使用 JavaScript 实现数据导出为 Excel 和 CSV 文件
  • #基础Machine Learning 算法(上)
  • 大模型微调Fine-tuning:从概念到实践的全面解析
  • 苹果用户,安卓来“偷心”
  • 苏丹宣布与阿联酋断交
  • 贵州黔西市游船倾覆事故最后一名失联人员被找到,但已无生命体征
  • 上海今日降雨降温,节后首个工作日气温回升最高可达28℃
  • 热点问答丨新加坡人民行动党缘何再赢议会选举
  • 辽宁男篮被横扫这一晚,中国篮球的一个时代落幕了