如何为所有控制器配置默认@RestController URI 前缀?
我知道您可以设置以更改根上下文。server.contextPath
application.properties
另外,我可以在Spring Boot的应用程序配置中添加一个额外的上下文,如下面的示例(在Groovy中)一样,将“/api”添加到根上下文的URL映射中:
@Bean
ServletRegistrationBean dispatcherServlet() {
ServletRegistrationBean reg = new ServletRegistrationBean(new DispatcherServlet(), "/")
reg.name = "dispatcherServlet"
reg.addInitParameter("contextConfigLocation", "")
reg.addUrlMappings("/api/*")
reg.loadOnStartup = 2
reg
}
}
我正在尝试有一个单独的基本URI“/api”专门用于Web服务调用,我可以利用它来确保安全等。但是,使用上述方法将意味着我的任何URI(无论是否为Web服务)都可以使用“/”或“/api”进行访问,并且不提供具体的隔离。
有没有人知道一种更好的方法,可以使用配置为所有(s)设置基本路径,而不必正式地在每个控制器前面加上/api/前缀?如果我被迫手动为每个控制器添加URI前缀,则可能会错误地省略它并绕过特定于Web服务的安全措施。@RestController
以下是Stack Overflow中对相同类型问题的参考,该问题从未得到完全回答: