Java 在SpringMVC中设置api版本的最佳实践

Java 在SpringMVC中设置api版本的最佳实践,java,spring,web-services,rest,model-view-controller,Java,Spring,Web Services,Rest,Model View Controller,我正在从事一个小型SpringMVC项目,该项目需要向请求URL添加api版本,例如:http://host.serice.com/api/1.0/documents。据我所知,我可以这样实施: @RestController @RequestMapping(value="/api/1.0") public class DocumentController { } 在我看来,这不是一个好主意,因为我必须对所有控制器的版本号进行硬编码,一旦版本号增加,我必须重新更新控制器,这项工作可能违反“开放

我正在从事一个小型SpringMVC项目,该项目需要向请求URL添加api版本,例如:
http://host.serice.com/api/1.0/documents
。据我所知,我可以这样实施:

@RestController
@RequestMapping(value="/api/1.0")
public class DocumentController {
}

在我看来,这不是一个好主意,因为我必须对所有控制器的版本号进行硬编码,一旦版本号增加,我必须重新更新控制器,这项工作可能违反“开放扩展关闭修改”原则。您对此有什么想法吗?

您是否使用Maven或Gradle之类的构建工具?您的版本是如何管理的?您可以在请求映射中使用属性占位符,例如,
“/api/${api.version}”
,这样您就不必硬编码任何您关心的内容。出于好奇,您最终是如何实现api的版本控制的?