我想定义 /api
作为我所有 @RestController
的根上下文s 并且不想为每个人指定它。
例如,我想写 @RestController("/clients")
而不是 @RestController("/api/clients")
并在 /api/clients
上提供我的请求映射但是我的静态资源(在 /main/resources/static
中)仍然在 /**
提供服务.
因此,设置 server.servlet.contextPath=/api
在 application.properties
不是我的用例的解决方案,因为静态资源将在 /api
提供。 ,这是我不想要的。
简而言之,我想拥有与 JAX-RS 相同的功能 @ApplicationPath("/api")
在 Spring Web MVC 中,这可能吗?
最佳答案
一种可能的解决方案(变通方法)是使用带有映射的父类
@RequestMapping(path="/api")
abstract class BaseController{
....
}
其他 Controller 可以扩展它
class OtherController extends BaseController {
@RequestMapping(path="/clients")
public ....clients(....){
.....
}
}
请注意,如果您将 @RequestMapping 放在任何子类的顶部,它将被覆盖。如解释 here和 here
关于spring - 如何在 Spring Web MVC 中为所有 @RestController 设置上下文根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47265187/