У меня есть класс PublishContext с методом context () следующим образом:
public static Mono<Object> context(){
return Mono.empty().subscriberContext( context -> {
Context context1 = context.put("key", "hello");
System.out.println((String) context1.get("key"));
return context1;
});
}
В вышеприведенном коде контекстный объект - Context0 @ 744, а context1 - Context @ 747, который понятен, так как контекст неизменен ивсегда возвращает новый контекст.
В моем основном классе у меня есть следующий код:
public static void main(String[] args) {
Mono<Object> objectMono = PublishContext.context();
objectMono.subscribe();
Mono<Object> objectMono1 = Mono.subscriberContext().flatMap(context -> {
System.out.println((String) context.get("key"));
return Mono.empty();
});
objectMono1.subscribe();
}
Здесь я получаю контекст как Context0 @ 744, т.е. Старый контекст и, следовательно, получаяисключение "контекст пуст".Может кто-нибудь объяснить, пожалуйста, это поведение?Кроме того, как я могу получить доступ к context0 @ 747, который я возвращаю из метода context ()?