总结SpringBoot设置欢迎页的方式

方式一:SpringBoot对静态资源的自动映射(最基础)

SpringBoot框架将欢迎页做了自动配置 ,不需要任何配置,只需在静态资源目录下添加index.jsp欢迎页即可。

1. 导入jquery‐webjar依赖

XML 复制代码
<!--引入jquery‐webjar 在访问的时候只需要写webjars下面资源的名称即可-->
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.3.1</version>
</dependency>

2. 在 src/main/resources/static/ 下新建一个 index.html

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h2>SpringBoot对静态资源的自动映射</h2>
    <p>springboot自动配置,在静态资源下查找index.html文件</p>
</body>
</html>

3. 访问当前项目的任何资源,都去(静态资源的文件夹)找映射

优先级:从高到低

bash 复制代码
# 任选其一
"classpath:/META‐INF/resources/index.html",
"classpath:/resources/index.html",
"classpath:/static/index.html",
"classpath:/public/index.html"
"/":当前项目的根路径

4. 适用场景:

  • 纯静态的 HTML 页面,
  • 不需要编写xml,
  • 不需要后端传数据,
  • 也不使用 Thymeleaf 语法。

方式二:SpringBoot-Controller映射(最常用)

最常用的一种获取动态页面的方式,页面通常放在classpath:/templates/目录下(模板引擎默认目录)。

1. src/main/resources/ templates**/ 下新建一个 index.html**

html 复制代码
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h2 th:text="${message}"></h2>
    <h2>且使用Thymeleaf 模板引擎</h2>
</body>
</html>

2. 在controller层建一个java文件

java 复制代码
package com.qcby.springBootWelcome.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class WelcomeController {
    @RequestMapping("/")
    public String welcomeHello(Model model){
        model.addAttribute("message","SpringBoot-Controller映射");
        return "index";
    }
}

3. 访问路径: classpath:/templates/index.html

4. 适用场景:

  • 使用 Thymeleaf 模板引擎的动态页面
  • 需要后端数据交互

方式三:WebMvcConfigurer 配置类

1. 在 src/main/resources/ templates**/ 下新建一个 login.html**

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h2>登录页面</h2>
    <h3>适用 WebMvcConfigurer 配置类</h3>
</body>
</html>

2. 创建WebConfig配置类

java 复制代码
package com.qcby.springBootWelcome.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer{
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // 直接映射到静态页面
//        registry.addViewController("/").setViewName("login.html");

        // 或者映射到模板引擎页面
         registry.addViewController("/").setViewName("login");
    }
}

3. 访问路径: classpath:/templates/login.html

4. 适用场景:

  • 使用 Thymeleaf 模板引擎的动态页面
  • 不需要后端传特定数据,仅仅是做路由跳

总结

这三种方式的优先级:SpringBoot-Controller映射 > WebMvcConfigurer 配置类 > SpringBoot对静态资源的自动映射

方法 适用场景 优点 缺点
静态资源默认 简单静态页面 无需配置 功能单一
WebMvcConfigurer 需要URL映射 灵活 需要代码配置
Controller方式 动态内容 功能强大 代码量多
模板引擎 动态页面 前后端结合 需要学习模板语法
相关推荐
小荷才露尖尖角,早有蜻蜓立上头37 分钟前
过滤器的4种创建方式
java
大圣编蚕1 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
程序员阿明1 小时前
idea把插件啥的不默认放在C盘
java·ide·intellij-idea
linweidong2 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手2 小时前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom
ForteScarlet2 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
萧瑟余晖2 小时前
Java深入解析篇六十二之安全机制详解
java·开发语言
小刘在重生~3 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
Orange_sparkle3 小时前
Pi Agent vs LangGraph:从人机交互、企业 RAG 到持久化工作流的完整选型指南
java·网络·人机交互
IT_陈寒3 小时前
React子组件莫名其妙重渲染?你可能漏了这个Hook
前端·人工智能·后端