在我的项目中,我使用swagger-ui库,该库在类路径的根目录中具有index.html文件。这样index.html,当我按下root url时,这便成为我应用程序的起始页/。 但是我想index.tpl从resources/templatesBoot项目的文件夹中使用自定义的Groovy模板。当我执行这种方法时,应用程序仍index.html从Swagger- UI JAR文件显示。
index.html
/
index.tpl
resources/templates
如何使用项目中的自定义项覆盖jar中的索引页?
UPD:以下方法对我不起作用。它返回404错误。然后添加@EnableWebMvc批注,现在Spring找不到我的Groovy模板。我的Groovy模板的类路径中有所有必需的依赖项,并且它们在属性文件中已打开。似乎Spring根本无法解析Groovy模板。
Spring Boot的WebMvcAutoConfigurationAdapter默认情况下(在addStaticIndexHtmlViewControllers方法中)注册从“ /”到“ /index.html”的转发。因此,您必须在路径“ /index.html”下注册视图。
可以@RequestMapping("/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。
WebMvcAutoConfigurationAdapter
WebMvcAutoConfiguration