title: How to inject HttpServletRequest into a Spring AOP request (custom scenario)?
body: <p>I know the standard way of writing an AOP advice around a controller method and that you can get access to the HttpServletRequest arg, if declared in controller method.</p>
  
  <p>But my scenario is that I have a translation service, that is currently session-scoped maintaining the user's locale for translation. I feel this makes the service stateful and also I do not want it to be session-scoped, as I think it is really Singleton. But there are multiple places where the translation service methods are called and so I do not want to change the signature to add request/locale in these methods. The problem is that all the callers of the translation service's methods do not have access to HttpServletRequest (not controller methods)? Can I write an aspect around the translation service methods and somehow magically get access to HttpServletRequest regardless of whether it is available in the caller's context or not?</p>
  
  <pre><code>@Service
  public class TranslationService {
      public void translate(String key) {
          ...
      }
  }
  
  @Aspect
  @Component
  public class LocaleFinder {
      @PointCut("execution(* TranslationService.translate(..))")
      private void fetchLocale() {}
  
      @Around("fetchLocale()") // in parameter list
      public void advice(JoinPoint joinpoint, HttpServletRequest request) { .... } 
  }
  </code></pre>
  
  <p>If now, the caller of translate does not have HttpServletRequest, can't I get request in the advice? Is there a workaround?</p>