Spring Boot – переопределить индексную страницу из webjar

В моем проекте я использую библиотеку swagger-ui, у которой есть файл index.html в корне пути к классу. Таким образом, этот index.html становится стартовой страницей моего приложения, когда я нажимаю корневой URL-адрес, например /.
Но я хочу использовать свой собственный шаблон Groovy index.tpl из папки resources/templates моего проекта Boot. Когда я выполняю такой подход, приложение по-прежнему отображает index.html из JAR-файла Swagger-UI.


Как переопределить индексную страницу из jar пользовательской из проекта?

UPD: Подход ниже у меня не работает. Он возвращает ошибку 404. Затем я добавляю аннотацию @EnableWebMvc, и теперь Spring не может найти мой шаблон Groovy. У меня есть все необходимые зависимости в моем пути к классам для шаблона Groovy, и они включены в файле свойств. Похоже, Spring вообще не может разрешить шаблон Groovy.


person ybondar    schedule 08.01.2015    source источник


Ответы (1)


WebMvcAutoConfigurationAdapter Spring Boot по умолчанию регистрирует переход от «/» к «/index.html» (в методе addStaticIndexHtmlViewControllers). Поэтому вы должны зарегистрировать представление по пути "/index.html".

Это можно сделать с помощью @RequestMapping("/index.html") на контроллере или с помощью:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter
{
    @Override
    public void addViewControllers(ViewControllerRegistry registry)
    {
        registry.addViewController("/index.html").setViewName("index");
    }
}

Другой вариант — переопределить WebMvcAutoConfigurationAdapter и отключить WebMvcAutoConfiguration.

person derkoe    schedule 08.01.2015
comment
Спасибо @koe, но этот подход мне не подходит. Он возвращает 404. Затем я добавляю аннотацию @EnableWebMvc, и теперь Spring не может найти мой шаблон Groovy. - person ybondar; 08.01.2015
comment
Я сам попробовал первый вариант, и он сработал. Вы пытались использовать переопределение WebMvcAutoConfigurationAdapter? - person derkoe; 09.01.2015
comment
ценю вашу помощь! Это была моя вина. Похоже, IntellijIdea имеет проблемы с идентификацией шаблонов Groovy и не может разрешить мои представления Groovy :( - person ybondar; 09.01.2015