Конфигурация resource handlers для Spring Boot

Рейтинг: 1Ответов: 1Опубликовано: 28.01.2023

Как сделать то же самое, что я указал в примере с кодом, используя Spring Boot (+Security)? Реализация WebMvcConfigurer интерфейса сбрасывает многие настройки, которые были выполнены boot'ом автоматически. Например, перестает работать настройка в application.properties "spring.mvc.hiddenmethod.filter.enabled=true". Вопрос в том, как настроить связку нескольких пар ResourceHandler:ResourceLocation, не конфигурируя при этом лишнее. Или нужно совсем не так это делать, направьте в нужную сторону, пожалуйста.

    @Configuration
    @EnableWebMvc
    public class MvcConfig implements WebMvcConfigurer {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/css/**")
                    .addResourceLocations("classpath:/static/assets/css/");
            registry.addResourceHandler("/images/**")
                    .addResourceLocations("classpath:/static/assets/images/");
            registry.addResourceHandler("/js/**")
                    .addResourceLocations("classpath:/static/assets/js/");
            registry.addResourceHandler("/person-storage/**")
                    .addResourceLocations("classpath:/storage/person-images/");
        }
    }

Ответы

▲ 2Принят

У Spring Boot есть класс WebMvcAutoConfiguration который настраивает все эти ваши MVC и именно он создаёт бин OrderedHiddenHttpMethodFilter если spring.mvc.hiddenmethod.filter.enabled установлен вtrue. Добавив аннотацию @EnableWebMvc на класс конфигурации вы этот класс отключили и теперь должны руками сделать всё что делал класс WebMvcAutoConfiguration.

Просто уберите @EnableWebMvc