我建议为此简单地使用继承:
版本1Controller.java
import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller@RequestMapping("v1/")public class Version1Controller { @ResponseBody @RequestMapping("foo") public String foo() { return "Foo 1"; } @ResponseBody @RequestMapping("bar") public String bar() { return "bar 1"; }}版本2Controller.java
import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller@RequestMapping({ "v2/", "latest/" })public class Version2Controller extends Version1Controller { @Override @ResponseBody @RequestMapping("bar") public String bar() { return "bar 2"; }}在这里,您将映射以下URL:
v1/foo
-返回“ Foo 1”v2/foo
-返回“ Foo 1”-从版本1继承v1/bar
-返回“第1条”v2/bar
-返回“条2”-从版本1覆盖行为。latest/foo
- 如同v2/foo
latest/bar
- 如同v2/bar



