spring boot项目欢迎页设置方式

方式一:静态资源目录放置 index.html(最简推荐,纯静态页面)

这是 Spring Boot 默认支持、无需额外配置的方式,核心利用框架内置的静态资源映射规则,直接放置静态页面即可生效。

配置步骤

将命名为 index.html 的静态页面,放在 Spring Boot 规定的 4 个静态资源目录 中任意一个即可(优先级:/META-INF/resources/ > /resources/ > /static/ > /public/),推荐使用最常用的 src/main/resources/static/ 目录:

plaintext

复制代码
src/
└── main/
    └── resources/
        └── static/  # 推荐目录
            └── index.html  # 欢迎页,命名必须是index.html
访问方式

启动项目后,直接访问项目根路径 http://localhost:8080/,框架会自动加载该 index.html

适用场景

纯静态页面(仅 HTML/CSS/JS),无需动态数据渲染,开发最快、零配置。

方式二:模板引擎目录放置 index.xxx(动态页面,如 Thymeleaf/Freemarker)

若欢迎页需要 动态渲染数据(如从数据库获取内容、展示动态参数),需使用模板引擎(Spring Boot 主流推荐 Thymeleaf),核心是将模板文件放在框架约定的模板目录中。

核心前提

先在 pom.xml(Maven)或 build.gradle(Gradle)中引入模板引擎依赖(以 Thymeleaf 为例):

xml

复制代码
<!-- Maven 依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
配置步骤

将模板文件(Thymeleaf 为 index.html,Freemarker 为 index.ftl)放在 Spring Boot 模板引擎 默认目录 src/main/resources/templates/(该目录是框架约定,无需额外配置路径):

plaintext

复制代码
src/
└── main/
    └── resources/
        └── templates/  # 模板引擎默认目录
            └── index.html  # Thymeleaf动态欢迎页
关键说明
  1. 模板文件可使用对应引擎的语法(如 Thymeleaf 的 th:text 渲染动态数据);
  2. 无需手动编写控制器,Spring Boot 会自动映射根路径 / 到该模板文件;
  3. 若同时存在「静态目录的 index.html」和「模板目录的 index.html」,模板引擎的页面优先级更高(框架会优先加载动态页面)。
适用场景

需要动态数据渲染的欢迎页,如展示系统版本、当前时间、用户信息等动态内容。

方式三:@Controller 编写自定义路由(编程式配置,灵活度最高)

通过手动编写控制器方法,映射根路径 / 到指定页面,支持 自定义跳转逻辑、动态传参、指定任意页面名称 / 路径,是灵活度最高的方式,完全摆脱框架的命名 / 目录约定。

实现步骤
  1. 创建 Spring MVC 控制器(标注 @Controller不可用 @RestController,否则会直接返回字符串而非页面);
  2. 编写方法映射根路径 /,通过 return 指定页面路径(静态页面 / 模板页面均可)。
代码示例
场景 1:跳转到模板引擎页面(推荐,支持动态传参)

java

运行

复制代码
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class IndexController {

    // 映射根路径 /,访问 http://localhost:8080/ 时触发
    @GetMapping("/")
    public String index(Model model) {
        // 自定义逻辑:向页面传递动态数据
        model.addAttribute("title", "Spring Boot 欢迎页");
        model.addAttribute("content", "通过@Controller实现,灵活度最高");
        // 返回模板引擎目录下的页面路径(无需写后缀,框架自动识别)
        // 对应 src/main/resources/templates/index.html
        return "index";
    }
}
场景 2:跳转到静态资源目录的页面

java

运行

复制代码
@Controller
public class IndexController {
    @GetMapping("/")
    public String index() {
        // 跳转到 static 目录下的 static-index.html
        // 前缀 classpath:/static/ 是框架默认,后缀可省略
        return "static-index";
    }
}
核心优势
  1. 突破框架约定:页面名称可自定义(无需是 index)、路径可自由指定;
  2. 支持复杂逻辑:跳转前可执行数据库查询、参数校验、权限判断等;
  3. 灵活传参:通过 Model/ModelAndView 向页面传递任意动态数据;
  4. 可扩展:可结合拦截器、过滤器实现个性化的欢迎页逻辑(如根据用户角色展示不同欢迎页)。
适用场景
  • 欢迎页需要复杂业务逻辑处理;
  • 不想遵循框架的目录 / 命名约定;
  • 需根据不同条件展示不同欢迎页(如多端适配、权限控制)。

三种方式核心对比 & 优先级

实现方式 核心特点 适用场景 配置复杂度
静态目录 index.html 零配置、纯静态、速度最快 无动态数据的简单欢迎页 极低
模板引擎目录 index.xxx 少量配置(仅引依赖)、支持动态渲染 需基础动态数据的欢迎页
@Controller 自定义路由 完全自定义、逻辑灵活、支持复杂场景 需业务逻辑 / 权限控制 / 个性化的欢迎页

优先级规则(同一路径下多个欢迎页共存时)

@Controller 映射的 / 路径 > 模板引擎目录的 index.xxx > 静态资源目录的 index.html

关键注意事项

  1. 若使用方式三,控制器必须标注 @Controller@RestController 会将返回值解析为 JSON / 字符串,无法跳转到页面;
  2. 静态资源目录的优先级是框架内置的,无需手动配置,若需修改可通过 spring.web.resources.static-locations 自定义;
  3. 模板引擎页面的目录(templates/)是约定路径,修改需配置对应引擎的属性(如 Thymeleaf 的 spring.thymeleaf.prefix);
  4. Spring Boot 2.4+ 移除了 spring.mvc.view.prefix/suffix 的默认配置,若使用 JSP 作为模板,需手动配置该属性(不推荐在 Spring Boot 中使用 JSP)。
相关推荐
4311媒体网2 小时前
自动收藏功能的实现方法
java·开发语言
Yana.nice2 小时前
证书格式的适用场景与核心对比
java·linux
怪兽毕设2 小时前
基于SpringBoot的选课调查系统
java·vue.js·spring boot·后端·node.js·选课调查系统
DFT计算杂谈2 小时前
VASP+PHONOPY+pypolymlpj计算不同温度下声子谱,附批处理脚本
java·前端·数据库·人工智能·python
cyforkk2 小时前
13、Java 基础硬核复习:泛型(类型安全)的核心逻辑与面试考点
java·开发语言·面试
程序员徐师兄2 小时前
Windows JDK17 下载安装教程,附详细图文
java·windows·jdk17 下载安装·java17 下载安装教程
IManiy2 小时前
总结之Temporal实现全局速率控制方案(一)
java
code_li2 小时前
Android 16KB页面大小适配
java·架构·android-studio
Mr_Xuhhh2 小时前
MySQL表的内连接与外连接详解
java·前端·数据库