繁体   English   中英

何时使用请求范围的 bean 与将参数传递到堆栈中?

[英]When to use request scoped beans vs passing parameters down the stack?

我公开了一个 API,我从请求标头中提取了一个client参数。
然后在业务逻辑中使用这个参数,将客户特定的规则应用到连接层,在那里它驱动我将调用的外部系统。

我们正在与一位同事讨论我们是否应该使用请求范围的 bean 来存储这个参数并使其在堆栈中的任何地方都可以使用,或者我们是否应该将此值作为方法参数向下传递,或者两者兼而有之。

请求范围的 bean 很简单 - 您存储值并可以在任何地方访问它。 另一方面,您通过不公开服务所需的实际参数来隐藏服务的实际需求。

在这种情况下是否有最佳实践? 你会如何处理这种情况?

我们最终做了什么:

  • 公开业务服务签名中的参数,以真正清楚这些方法依赖什么来执行其工作
  • 使用请求范围的 bean 来处理横向问题,例如日志记录或访问层。

原因是横向服务通常需要大量信息,并且通过业务层传递这些信息会污染方法的要求,因为所有方法都必须接受相同的 N 个参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM