总结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方式 动态内容 功能强大 代码量多
模板引擎 动态页面 前后端结合 需要学习模板语法
相关推荐
heartbeat..6 小时前
Redis 中的锁:核心实现、类型与最佳实践
java·数据库·redis·缓存·并发
7 小时前
java关于内部类
java·开发语言
好好沉淀7 小时前
Java 项目中的 .idea 与 target 文件夹
java·开发语言·intellij-idea
gusijin7 小时前
解决idea启动报错java: OutOfMemoryError: insufficient memory
java·ide·intellij-idea
To Be Clean Coder7 小时前
【Spring源码】createBean如何寻找构造器(二)——单参数构造器的场景
java·后端·spring
吨~吨~吨~7 小时前
解决 IntelliJ IDEA 运行时“命令行过长”问题:使用 JAR
java·ide·intellij-idea
你才是臭弟弟7 小时前
SpringBoot 集成MinIo(根据上传文件.后缀自动归类)
java·spring boot·后端
短剑重铸之日7 小时前
《设计模式》第二篇:单例模式
java·单例模式·设计模式·懒汉式·恶汉式
码农水水7 小时前
得物Java面试被问:消息队列的死信队列和重试机制
java·开发语言·jvm·数据结构·机器学习·面试·职场和发展
summer_du7 小时前
IDEA插件下载缓慢,如何解决?
java·ide·intellij-idea