이것이 문제에 대한 첫 번째 Google 히트이기 때문에 더 많은 사람들이 이것을 검색 할 것이라고 가정합니다. Spring Boot '1.4.0'이후 새로운 옵션이 있습니다. 이제 @RestController로 주석이 달린 클래스에 대해 다른 경로를 정의 할 수 있는 사용자 정의 RequestMappingHandlerMapping 을 정의 할 수 있습니다.
@RestController 와 @RequestMapping 을 결합한 커스텀 어노테이션이있는 다른 버전 은이 블로그 게시물 에서 찾을 수 있습니다.
@Configuration
public class WebConfig {
@Bean
public WebMvcRegistrationsAdapter webMvcRegistrationsHandlerMapping() {
return new WebMvcRegistrationsAdapter() {
@Override
public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {
return new RequestMappingHandlerMapping() {
private final static String API_BASE_PATH = "api";
@Override
protected void registerHandlerMethod(Object handler, Method method, RequestMappingInfo mapping) {
Class<?> beanType = method.getDeclaringClass();
if (AnnotationUtils.findAnnotation(beanType, RestController.class) != null) {
PatternsRequestCondition apiPattern = new PatternsRequestCondition(API_BASE_PATH)
.combine(mapping.getPatternsCondition());
mapping = new RequestMappingInfo(mapping.getName(), apiPattern,
mapping.getMethodsCondition(), mapping.getParamsCondition(),
mapping.getHeadersCondition(), mapping.getConsumesCondition(),
mapping.getProducesCondition(), mapping.getCustomCondition());
}
super.registerHandlerMethod(handler, method, mapping);
}
};
}
};
}
}