Springboot中配置欢迎页的方式

在 Spring Boot 中配置欢迎页(即访问 http://localhost:8080/ 时显示的页面)比传统的 SSM 项目要简单得多,主要有 3 种方式

根据你的实际需求(是静态页面还是需要后端数据的动态页面),选择最合适的一种:


方式 1:静态资源自动映射 (最简单/零代码)

Spring Boot 的自动配置机制会默认在静态资源目录下查找名为 index.html 的文件。如果找到了,就会直接把它当作欢迎页。

  • 适用场景:纯静态的 HTML 页面,不需要后端传数据,也不使用 Thymeleaf 语法。

  • 文件位置:放在以下任意一个目录的根路径下(优先级从高到低):

    1. classpath:/META-INF/resources/index.html

    2. classpath:/resources/index.html

    3. classpath:/static/index.html (推荐,最常用)

    4. classpath:/public/index.html

操作步骤 : 直接在 src/main/resources/static/ 下新建一个 index.html 即可。


方式 2:Controller 控制器映射 (最常用/动态)

如果你使用的是 Thymeleaf 模板引擎,或者需要在进入首页前查询数据库、进行权限验证,就需要使用这种方式。

  • 适用场景:动态页面 (Thymeleaf/JSP),需要后端数据交互。

  • 原理 :定义一个 Controller,拦截根路径 /

代码示例

java 复制代码
@Controller
public class IndexController {

    @RequestMapping("/")
    public String index(Model model) {
        // 你可以在这里存入数据,页面上就能读取了
        model.addAttribute("msg", "这是通过Controller跳转的首页");
        
        // 返回视图名称 "index"
        // Thymeleaf 会去 classpath:/templates/index.html 找
        return "index"; 
    }
}

方式 3:WebMvcConfigurer 配置类 (最简洁的动态方式)

如果你只是单纯想把 / 映射到一个 Thymeleaf 模板,但不需要在 Java 代码里写业务逻辑,可以用配置类的方式,这样代码更干净,不用专门写一个 Controller 方法。

  • 适用场景:Thymeleaf 模板页面,但不需要后端传特定数据,仅仅是做路由跳转。

代码示例

java 复制代码
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) {
        // 将根路径 "/" 映射到视图名 "index"
        registry.addViewController("/").setViewName("index");
    }
}

⚠️ 优先级与冲突 (避坑指南)

如果你的项目中同时存在以上多种配置,Spring Boot 的处理优先级如下:

  1. Controller 映射 (方式 2 或 3) 优先级最高

    • 如果你配置了 @RequestMapping("/"),Spring Boot 就不会再去看静态资源里的 index.html 了。
  2. 静态资源 (方式 1) 优先级较低

    • 只有当没有 Controller 拦截 / 时,Spring Boot 才会去 static 目录下找 index.html

总结建议

  • 纯静态展示 (比如公司官网介绍页,不涉及登录):直接扔在 static/index.html

  • 后台管理系统/业务系统 (涉及登录、数据展示):推荐使用 方式 2 (Controller),因为通常访问首页时需要检查用户是否登录,或者加载一些初始数据。

相关推荐
咩咩啃树皮8 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny8 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
灯澜忆梦8 小时前
GO_并发编程---定时器
开发语言·后端·golang
阳光是sunny8 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
鱟鲥鳚9 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
皮皮林5519 小时前
开源实力派,给本地 AI 装上深度调研能力,一张 3090 跑到 95.7 分!
后端
努力的小雨9 小时前
把 Windows 桌面图标做成一个会自己运转的小世界
后端
武子康10 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
大模型码小白10 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司11 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求