如何避免将相同参数传递给所有方法?

时间:2015-02-05 13:59:29

标签: java spring stateless

在我的应用程序中,我有一些服务类,其中只有无状态方法只能在方法参数中运行。

我的问题是,许多这些方法都需要外部API,需要用户和应用程序请求它。

一个简单的解决方案是将这些参数添加到所有服务方法中,例如:

class RequestInformation{
    private String user;
    private String application;
}

class SomeService{
    foo(requestInformation, methodParamA, methodParamB)
    bar(requestInformation, methodParamA, methodParamB, methodParamC)
}

我不确定是否向所有服务类中的所有方法添加相同的RequestInformation参数是个好主意。

我可以使用其他方法来避免在所有方法中使用RequestInformation吗?

1 个答案:

答案 0 :(得分:1)

你的问题中有SPRING TAG所以假设你正在使用Spring。

您可以将请求特定信息存储到会话范围bean中。因此,它将成为每个请求的新实例:

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-factory-scopes-request

这种bean可以自动连接到任何一个spring bean中。