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

Java 如何避免将相同的参数传递给所有方法?,java,spring,stateless,Java,Spring,Stateless,在我的应用程序中,我有一些服务类,它们的无状态方法只在方法参数中运行 我的问题是,这些方法中有许多调用外部API,需要用户和应用程序请求它 一个简单的解决方案是将这些参数添加到所有服务方法中,例如: class RequestInformation{ private String user; private String application; } class SomeService{ foo(requestInformation, methodParamA, met

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

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

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

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

class SomeService{
    foo(requestInformation, methodParamA, methodParamB)
    bar(requestInformation, methodParamA, methodParamB, methodParamC)
}
我不确定向所有服务类中的所有方法添加相同的RequestInformation参数是否是一个好主意


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

您的问题中有SPRING标记,所以假设您使用的是SPRING

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


这样的bean可以自动连接到任何Springbean中。

我的解决方案是将RequestInformation会话设置为作用域,并使用作用域代理将其注入到单例服务类中。