1

В соответствии с doc:Пружина 5 Веб Реактивная - Осветление о DTO преобразования тела ответа

Тело ответа может быть одно из следующих действий:

  • счета - сериализовать без блокировки данного счета; подразумевает синхронный, неблокирующий метод контроллера.

Почему метод синхронного контроллера может быть неблокирующим? Это звучит как противоречие.

ответ

1

Ниже приведен пример синхронного, неблокирующий контроллер метода:

@GetMapping("/sample/account") 
public Account sample() { 
    return new Account("codependent"); 
} 

Это синхронно, поскольку он не возвращает типа, который сигнализирует отложенный результат (например, Mono или Flux). Он не блокируется, потому что операция блокировки не выполняется (ввод-вывод, ожидание на общем ресурсе и т. Д.).

Вы можете обернуть его Mono, как Mono.just(new Account("codependent")), но вы просто заплатите стоимость этого асинхронного типа без причины.

+0

Так что это следует использовать только тогда, когда метод контроллера ничего не блокирует. Дело в том, что я не вижу много ситуаций, когда это применимо, я имею в виду: если мы сделаем что-то асинхронное, у нас будет Mono, если мы что-то заблокируем, он не будет сериализован без блокировки ... BTW, Спасибо за ответ. – codependent