Inheritance support

You have probably noticed that the annotations inside a controller implementation and the Feign client implementation for a REST service served by that controller are identical. We may create an interface that contains abstract REST method definitions. That interface can be implemented by a controller class or extended by a Feign client interface:  

public interface AccountService {    @PostMapping    Account add(@RequestBody Account account);     @PutMapping    Account update(@RequestBody Account account);     @PutMapping("/withdraw/{id}/{amount}")    Account withdraw(@PathVariable("id") Long id, @PathVariable("amount") int amount);     @GetMapping("/{id}")    Account findById(@PathVariable("id") Long id);  @GetMapping("/customer/{customerId}") ...

Get Mastering Spring Cloud now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.