还是通过源码查看首页定制的方法。web开发的配置都在WebMvcAutoConfig.java
中
源码阅读
@Bean
public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext,
FormattingConversionService mvcConversionService,
ResourceUrlProvider mvcResourceUrlProvider) {
WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(
new TemplateAvailabilityProviders(applicationContext), applicationContext, getWelcomePage(), // getWelcomePage 获得欢迎页
this.mvcProperties.getStaticPathPattern());
welcomePageHandlerMapping.setInterceptors(getInterceptors(mvcConversionService, mvcResourceUrlProvider));
return welcomePageHandlerMapping;
}
private Optional<Resource> getWelcomePage() {
String[] locations = getResourceLocations(this.resourceProperties.getStaticLocations());
// ::是java8 中新引入的运算符
// Class::function的时候function是属于Class的,应该是静态方法。
// this::function的funtion是属于这个对象的。
// 简而言之,就是一种语法糖而已,是一种简写
return Arrays.stream(locations).map(this::getIndexHtml).filter(this::isReadable).findFirst();
}
// 欢迎页就是一个location下的的 index.html 而已
private Resource getIndexHtml(String location) {
return this.resourceLoader.getResource(location + "index.html");
}
第一个类是欢迎页的映射。即我们的localhost的默认页面localhost:8080
- 14表示从静态资源路径获取欢迎页
- 19有一个方法:
getIndexHtml
表示获取index.html页 - 23表示在静态资源页寻找一个叫
index.html
的页面,该页面会被映射为欢迎页
首页定制
根据源码可知,在4个默认静态资源路径里创建一个index.html即可修改为新的首页(注意静态资源过滤和静态资源路径配置有没有改默认的)
虽然之前首页和错误页一样.但是错误页不等于首页。
*网站图标
即网站地址栏或者标签页前面的小图标。在2.1.?前的版本有这么一个配置。新版本出于安全的考虑取消了
Spring Boot在配置的静态内容位置中查找 favicon.ico。如果存在这样的文件,它将自动用作应用程序的favicon。
1、关闭SpringBoot默认图标 spring.mvc.favicon.enabled=false
2.将图标考到静态资源路径
3.清除浏览器缓存!刷新网页。即可看到图标变为自己的图标