In my project I use swagger-ui library which have index.html file in the root of class path. In such way this index.html
becomes the start page of my app when I hit root url like /
.
But I want to use my custom Groovy template index.tpl
from resources/templates
folder of my Boot project. When I perform such approach application still displays index.html
from Swagger-UI JAR file.
How to override index page from jar with custom one from project?
UPD: Approach below doesn't work for me. It returns 404 error. Then I add @EnableWebMvc annotation and now Spring can't find my Groovy Template. I have all necessary dependencies in my classpath for Groovy Template and they are turned on in the properties file. Seems like Spring can't resolve Groovy Template at all.
Spring Boot's WebMvcAutoConfigurationAdapter registers the forward from "/" to "/index.html" by default (in method addStaticIndexHtmlViewControllers). Therefore you have to register the view under the path "/index.html".
This can be done with @RequestMapping("/index.html")
on the controller or with:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter
{
@Override
public void addViewControllers(ViewControllerRegistry registry)
{
registry.addViewController("/index.html").setViewName("index");
}
}
Another option would be to override WebMvcAutoConfigurationAdapter
and disable WebMvcAutoConfiguration
.
来源:https://stackoverflow.com/questions/27836584/spring-boot-override-index-page-from-webjar