В аспекте я получаю запрос 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;
}
}