还是通过源码查看首页定制的方法。web开发的配置都在WebMvcAutoConfig.java

源码阅读

  1. @Bean
  2. public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext,
  3. FormattingConversionService mvcConversionService,
  4. ResourceUrlProvider mvcResourceUrlProvider) {
  5. WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(
  6. new TemplateAvailabilityProviders(applicationContext), applicationContext, getWelcomePage(), // getWelcomePage 获得欢迎页
  7. this.mvcProperties.getStaticPathPattern());
  8. welcomePageHandlerMapping.setInterceptors(getInterceptors(mvcConversionService, mvcResourceUrlProvider));
  9. return welcomePageHandlerMapping;
  10. }
  11. private Optional<Resource> getWelcomePage() {
  12. String[] locations = getResourceLocations(this.resourceProperties.getStaticLocations());
  13. // ::是java8 中新引入的运算符
  14. // Class::function的时候function是属于Class的,应该是静态方法。
  15. // this::function的funtion是属于这个对象的。
  16. // 简而言之,就是一种语法糖而已,是一种简写
  17. return Arrays.stream(locations).map(this::getIndexHtml).filter(this::isReadable).findFirst();
  18. }
  19. // 欢迎页就是一个location下的的 index.html 而已
  20. private Resource getIndexHtml(String location) {
  21. return this.resourceLoader.getResource(location + "index.html");
  22. }

第一个类是欢迎页的映射。即我们的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.清除浏览器缓存!刷新网页。即可看到图标变为自己的图标