一.Spring Boot设置欢迎页面
1.默认欢迎页的源码
在Spring Boot中,默认的欢迎界面是index.html,那为什么这样呢?我们可以看看源码是怎么定义的。
public class WebMvcAutoConfiguration {
private Optional<Resource> getWelcomePage() {
String[] locations = getResourceLocations(this.resourceProperties.getStaticLocations());
return Arrays.stream(locations).map(this::getIndexHtml).filter(this::isReadable).findFirst();
}
private Resource getIndexHtml(String location) {
return this.resourceLoader.getResource(location + "index.html");
}
}
从源码中我们可以看到,欢迎页的静态资源文件默认就是index.html页面,并且只要该页面存放在resources目录下的默认路径中,就会被"/**"映射。
classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
/:当前项目的根路径
也就是只要index.html页面在以上几个目录内,就会自动被Spring Boot探测到。
2.实验验证
2.1 创建web项目(略)
目录结构如下,在该项目中,我们在resources目录下,创建4个子文件夹,具体参考上一章节。
然后在每个子文件夹中,都存放一个index.html文件,但是文件内容略有不同,每个文件都有自己的编号。
每个index.html文件内容的编号不同,以此类推!
2.2 启动项目测试
我们启动web项目,输入地址
http://localhost:8080
会发现,默认加载的是META-INF/resources目录下的index.html文件,为什么呢?这与静态资源文件夹的优先级有关系哦,我们上一章节已经讲过了
二.自定义欢迎页面
但在实际开发中,我们有时候就希望先访问登录界面,然后登录成功后再跳到主页面,那此时如何将登录页面作为欢迎页面呢?
这个可以有两种实现方式。
- 视图控制器配置方式;
- Controller直接实现方式;
1.视图控制器配置方式
1.1 创建配置类
我们可以在上面的web项目中,创建一个WebMvcConfigurerAdapter类。