Почему не грузится index.html по пути / в Spring 5.3.2 без WebMvcConfigurer?

В Spring 5.3.2 есть несколько изменений в том, как работает обработка статических файлов. Раньше, если вы хотели получить доступ к файлам, расположенным в папке "/public" или "/resources", вы могли использовать код без необходимости настраивать WebMvcConfigurer:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
            .addResourceHandler("/**")
            .addResourceLocations("classpath:/public/");
    }
}

Однако, начиная с версии 5.3.2, Spring изменил настройку обработки статических файлов. Теперь есть новый базовый префикс по умолчанию "static". То есть, если у вас есть файл "index.html" в папке "src/main/resources/static", то он будет доступен на пути "/index.html" без необходимости настраивать WebMvcConfigurer.

Если вы хотите изменить базовый префикс по умолчанию, чтобы файлы искались в другой папке, вы можете использовать WebMvcConfigurer:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
            .addResourceHandler("/**")
            .addResourceLocations("classpath:/custom_folder/");
    }
}

В этом случае файл "index.html" должен находиться в папке "src/main/resources/custom_folder" и будет доступен по пути "/index.html" при запуске приложения.

Надеюсь, это поможет вам разобраться почему не грузится "index.html" по пути "/" в Spring 5.3.2 без использования WebMvcConfigurer, и как изменить путь к статическим файлам, если вам это необходимо.