Spring Interface Driven Controllers usage

I used to write @RestControllers without interface, but suddenly saw article, describing such pattern Interface Driven Controllers. So the question is: why its need to create controllers with special interface per controller with annotated methods, for example @GetMapping, @RequestBody, @PathVariable etc. at all? It seems more complicated without any profit for me.


  • In article is perfectly explained you can implement one interface with same methods in two controllers:

    public class BookOldController implements BookOperations {...}
    public class BookNewController implements BookOperations {...}