既存の Web サービスを Spring 3.2 に移植しています。バージョン管理された API が必要で、新しいバージョンごとにコントローラーがあります。新しいコントローラーでメソッドを再定義したくありません。代わりに、最新のコントローラーに見つからない場合は、古いコントローラーにリクエストを自動的にマップしたいと考えています。
たとえば、 has と has の場合、ControllerV1
リクエスト/home
を次のようにルーティングします。/login
ControllerV2
/login
/home -> ControllerV1
/v1/home -> ControllerV1
/v2/home -> ControllerV1
/login -> ControllerV1
/v1/login -> ControllerV1
/v2/login -> ControllerV2
1 つのオプションは、で複数のパスを提供すること@RequestMapping
です。ただし、これは、API を新しいバージョンに追加するたびに、すべての古いコントローラーからパスを削除することを意味します。これを達成するための最もエレガントな方法は何ですか?