我以前写@RestControllers时没有接口,但突然看到文章https://www.baeldung.com/spring-interface-driven-controllers,描述了这样的模式接口驱动控制器。所以问题是:为什么需要为每个控制器创建带有注释方法的特殊接口的控制器,例如 @GetMapping、@RequestBody、@PathVariable 等?这似乎更复杂,对我来说没有任何利润。
文章中已经有完美的解释 您可以在两个控制器中使用相同的方法实现一个接口:
@RequestMapping("/oldversioncontroller/book")
public class BookOldController implements BookOperations {...}
@RequestMapping("/newversioncontroller/book")
public class BookNewController implements BookOperations {...}
如果您使用 Swagger 注释,您的控制器很可能难以阅读。使用接口,您可以将所有这些注释传递给接口并保持控制器实现中的可读性。