我知道您可以设置server.contextPathin application.properties来更改根上下文。
server.contextPath
application.properties
另外,我可以在Spring Boot的应用程序配置中添加一个附加上下文,如以下示例(在Groovy中),以便在根上下文的URL映射中添加“ / api”:
@Bean ServletRegistrationBean dispatcherServlet() { ServletRegistrationBean reg = new ServletRegistrationBean(new DispatcherServlet(), "/") reg.name = "dispatcherServlet" reg.addInitParameter("contextConfigLocation", "") reg.addUrlMappings("/api/*") reg.loadOnStartup = 2 reg } }
我正在尝试为Web服务调用专门准备一个单独的基本URI“ / api”,我可以利用它来提高安全性,等等。但是,使用上述方法将意味着可以通过以下方式访问我的任何URI(无论是否为Web服务) “ /”或“ / api”,并且不提供任何具体隔离。
有谁知道一种更好的方法,可以@RestController使用配置为所有人设置基本路径,而不必在每个控制器前加/ api /前缀?如果我被迫手动为每个控制器添加URI前缀,则可能会错误地忽略该前缀并绕过我针对Web服务的安全措施。
@RestController
有人在Spring MVC Jira中提出了一个问题,并提出了一个很好的解决方案,我现在正在使用它。这个想法是在每个RestController文件中放置的前缀中使用Spring Expression Language,并在Spring Boot application.properties文件中引用单个属性。
这是问题的链接:https : //jira.spring.io/browse/SPR-13882