gpt4 book ai didi

java - 在 Spring 支架 Controller 之间实现通用方法的最佳实践是什么?

转载 作者:行者123 更新时间:2023-11-30 01:55:44 26 4
gpt4 key购买 nike

我正在使用 Spring Rest Controller 来实现我的 Web api,我想将 Controller 之间的常用方法放在一个地方,以便可以在我的所有 Controller 中使用。

如果无法扩展@RestController注释,在父类BaseController中编写 Controller 公共(public)方法并从中扩展我的所有 Controller 是一个好习惯吗?

最佳答案

您可以创建您的 own stereotype/annotation但如果您只想向 Controller 添加一些常用方法,那么这显然是一种开销。此外,你将使你的代码变得不那么“Spring 标准”。我不认为你想要那样。

Is it a good practice to write controller common methods in a parent Class BaseController and extend all my controllers from it ?

我不认为这是一个不好的做法,但在某些情况下我不想对 Controller 使用类继承:

  • 公共(public)代码看起来像逻辑,而 Controller 不应该执行逻辑而是委托(delegate)。如果这些东西太多了,引入一个服务类并委托(delegate)给它。
  • 如果 Controller 不共享一组公共(public)字段/依赖项/初始化,那么使用提供公共(public)方法的依赖项类可能会更清晰/最简单。创建类的层次结构来避免声明公共(public)字段似乎太多了,并且是子类化的滥用。
  • 您应该支持 Spring AOP 和 ControllerAdvice 在 Controller 中进行预/前/处理和异常处理的常见处理。

如果您不属于这些情况,那么 Controller 的抽象类看起来是个好主意。

关于java - 在 Spring 支架 Controller 之间实现通用方法的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54594529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com