如果服务是由控制器触发的,我假设它是您可以使用 HttpSerlvetRequest 从控制器中检索路径并将完整路径传递给服务。
如果它是 UI 流的一部分,您实际上可以HttpServletRequest在任何层中注入,它可以工作,因为如果您注入HttpServletRequest,Spring 实际上会注入一个代理,该代理委托给实际的 HttpServletRequest(通过在 a 中保留一个引用ThreadLocal)。
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
public class AServiceImpl implements AService{
@Autowired private HttpServletRequest httpServletRequest;
public String getAttribute(String name) {
return (String)this.httpServletRequest.getAttribute(name);
}
}