什么时候使用请求范围的Bean与向下传递参数?

时间:2019-01-10 19:04:26

标签: java spring oop design-patterns

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

我们正在与一位同事讨论是否应该使用请求范围的Bean存储此参数并使其在堆栈中的任何地方都可以使用,还是应该将此值作为方法参数传递给他人,还是混合使用两者。

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

在这种情况下是否有最佳做法?您将如何处理这种情况?

1 个答案:

答案 0 :(得分:1)

我们最终要做的事情:

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

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