I am trying to using http header to determine the implementation to invoke during runtime in my rest service. I have a situation to support multiple versions of a same service within my code. Some classess have been updated based on the new design but the older implementation has a different logic in those classes. I now want to support the old code as well as new code as deploy the service as one artifact. I am planning to introduce a new implemenattion classs which implements same service and then copy the implemenattion for the down stream classess to support the old version. Now can i use spring to do the routing to the right implemenation based on the request header value? Or are there any good alternatives for this situation?