HttpServletRequest заменяется новым объектом - PullRequest
0 голосов
/ 02 апреля 2019

В аспекте я получаю запрос HttpServletRequest из приведенного ниже кода: запрос HttpServletRequest = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes ()) .getRequest ();и затем я устанавливаю его в некотором объекте bean области действия запроса, давайте назовем его GlobalRequestObject.

Теперь я передаю этот объект bean области действия запроса методу ниже

Single single = Single.fromCallable (() -> {return GlobalRequestObject}). subscribeOn (Schedulers.from (customExecutor));;

Теперь, когда я пытался извлечь заголовок из GlobalRequestObject, GlobalRequestObject.getApiRequest (). getHeaderNames () я получаю нулевое значение ("=== MimeHeaders === \ n").

Не могли бы некоторые тела, пожалуйста, помогите мне, что здесь пошло не так и почему заголовок равен нулю, так как перед передачей запроса в один метод присутствует заголовок.

@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
@Component
@Getter
@Setter
class GlobalRequestObject<<APIREQ> {

private APIREQ apiRequest;

}

@Component
@Aspect
public class Aspect{
@Around("executionOfPublicMethod()")
    public Object proceed(ProceedingJoinPoint jp) throws Throwable {
        Object result = null;
        try {
             HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
        GlobalRequestObject.setApiRequest((APIREQ) request);
             result = jp.proceed();
         } catch (Exception e) {
             throw e;
        } finally {
        return result;
    }

}
...