Melhores práticas (exemplos?) Sobre como organizar o código da API REST com versão no projeto Java / Spring?

Sou curioso se alguém puder me apontar um bom exemplo / melhor prática de organizar o código da API REST com versionamento (baseado em uri, significa "/ v1 / zzz" e "/ v2 / xxx" ou algo ainda melhor dependendo do cabeçalho Accept) - no projeto Java / Spring? Eu estou com medo de estar tornando isso muito complicado no meu projeto agora, então seria bom aprender com os outros.

Esclarecimento: não tenho certeza se eu deveria fazê-lo através de filtros e, em seguida, usar algum padrão de design para alterar o comportamento, mas isso vai fazer o meu filtro bastante complicado .. ou pode ser que eu não estou pensando em algum truque com primavera e DI, então eu pode tornar meu código mais limpo. a abordagem mais simples é algum padrão de estratégia em cada método que terá versões diferentes, mas não parece estar muito limpo também :-(

questionAnswers(1)

yourAnswerToTheQuestion