WebFlux. Реактивный web с Spring Java

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น • 99

  • @sfoxer
    @sfoxer 4 ปีที่แล้ว +55

    Благодаря вашим видосам про Spring я разобрался как это работает, и сделал тестовое задание на собеседовании (надо было сделать и развернуть веб-сервис). Вот уже почти как пол года я backend-разработчик)) Обожаю ваш канал. Огромнейшее спасибо)

  • @romanmotovilov129
    @romanmotovilov129 4 ปีที่แล้ว +8

    Кто поставил дизлайк? Зачем? Ведь этим урокам цены нет!!! Автору еще раз спасибо!

    • @fpsbard7267
      @fpsbard7267 3 ปีที่แล้ว

      Точно такой же вопрос задаюсь когда вижу тонну лайков под видео этого автора. Автор видео ничего не объясняет , вместо этого он просто озвучивает то что он делает. Полезности 0. Уже ни раз давал шанс, так как вижу кучу просмотров под его видео и очень часто натыкаюсь на интересущие меня темы, но ничего не могу понять из его уроков, потому что объяснений нету ВООБЩЕ. Люди у которых есть опыт они ничего нового не подчеркнут, у которых опыта нет , ничего не поймут. Отсюда и дизлайки.

    • @yanvolkovich1414
      @yanvolkovich1414 3 ปีที่แล้ว

      @@fpsbard7267 хм.. Ну не поняло получается только 13 из 1100 человек, значит автор просто бог педагог

  • @hallo_hallo_i_am_eva
    @hallo_hallo_i_am_eva 2 หลายเดือนก่อน

    10/10 для нового проекта нужно было разобраться в реактиве вместо привычного сервлета
    ваши уроки помогли буквально за час понять что к чему

  • @uzbagoy6672
    @uzbagoy6672 4 ปีที่แล้ว +4

    Быстро, понятно, "реактивно", подача отличная, смотрится в удовольствие. Спасибо!

  • @anu8is930
    @anu8is930 4 ปีที่แล้ว +5

    С нетерпением жду новых видео по реактивному спрингу)))) спасибо

  • @malloc9365
    @malloc9365 4 ปีที่แล้ว +5

    Большое спасибо, очень доступно и понятно, такое надо сразу Впрод)

  • @viktorkravtsov8724
    @viktorkravtsov8724 4 ปีที่แล้ว +1

    Большое спасибо за материал!!! Это как раз то что нужно!!!!!!!

  • @silentwitness3363
    @silentwitness3363 4 ปีที่แล้ว +1

    спасибо за урок
    Андрей, ты незаменим

  • @romankopylov5013
    @romankopylov5013 4 ปีที่แล้ว +1

    Мужииик!!! Жирненький тебе лайкос! =)
    Ждем продолжения серии!

  • @starkoracia
    @starkoracia 4 ปีที่แล้ว +1

    Больше ДиЧи!!! )))
    Спасибо за труды!!

  • @MrGrzegorz
    @MrGrzegorz 4 ปีที่แล้ว +1

    Прям зашло, очень хорошая затравка для интересного проекта!

  • @ЛёхаКорчагин-ю7т
    @ЛёхаКорчагин-ю7т 3 ปีที่แล้ว

    Спасибо огромное за твои видео! Они очень помогают в реальной работе!

  • @mwguy
    @mwguy 4 ปีที่แล้ว +57

    Что что, но я хочу больше подобной дичи

  • @romantsyupryk3009
    @romantsyupryk3009 3 ปีที่แล้ว

    Большое вам спасибо за это видео.

  • @nikitaantonenko3287
    @nikitaantonenko3287 4 ปีที่แล้ว

    Спасибо огромное!) Очень интересный урок)))

  • @iozhukau
    @iozhukau 4 ปีที่แล้ว

    Спасибо за урок.
    Замечание по параметрам start и count.
    Это не пагинация вовсе, а просто фильтрация, от куда начать и сколько взять. Что бы это стало пагинацией, нужно в метод skip() передать start * count.

  • @ilyshkalive
    @ilyshkalive 4 ปีที่แล้ว +2

    И все же какой подход лучше использовать? Функциональный или контроллеры?
    Что вызывает меньше проблем при дальнейшем изучении? К чему легче будет прикручивать логику авторизации, регистрации?

  • @ostanislav
    @ostanislav 4 ปีที่แล้ว +3

    Спасибо. Пока не могу понять нутром необходимость в реактивности и как она мне поможет. Что про дичь - побольше и подробнее. :-)

  • @artemvoronov4751
    @artemvoronov4751 4 ปีที่แล้ว

    Познавательно, спасибо.

  • @PostMapping
    @PostMapping 4 ปีที่แล้ว +20

    Очень интересно конечно, но пока ничего не понятно)

  • @АндрейШашкин-ш5г
    @АндрейШашкин-ш5г 4 ปีที่แล้ว

    Сразу лайк, не глядя

  • @MegaHuman91
    @MegaHuman91 4 ปีที่แล้ว +18

    F2 - переводит курсор на проблемное место, чтоб не пикать курсором

    • @PostMapping
      @PostMapping 2 ปีที่แล้ว +1

      Огромное спасибо!

  • @alexsh5308
    @alexsh5308 4 ปีที่แล้ว

    Отличное видео, спасибо! Было бы интересно также посмотреть , как правильно обрабатывать тело пост-запроса, сохранять в базу полученный объект, и возвращать на фронт его id, к примеру :)

  • @zhuch9277
    @zhuch9277 4 ปีที่แล้ว

    Еще не смотрел, но одобряю

  • @phil2964
    @phil2964 3 ปีที่แล้ว

    Никакой дичи, все супер!!!!!!!!!

  • @takhir.atamuratov
    @takhir.atamuratov 4 ปีที่แล้ว +1

    Спасибо за видео! Андрей, как нибудь сделай видео на тему WebFlux + JWT и WebFlux+Redis.

  • @intBRiNGER
    @intBRiNGER 4 ปีที่แล้ว +2

    - А под дичь будешь?
    - Под дичь, буду!
    - Федя, дичь.
    - Дичь!
    - Тссс!
    - Это дичь?
    - Это дичь? Дичь!
    - А под дичь водку не пьют!
    - А что?
    - Пьют это, вжух!
    PS. спасибо за дичь :)

  • @santyagakolya2208
    @santyagakolya2208 4 ปีที่แล้ว

    Супер!)

  • @almatrakhmetolla3324
    @almatrakhmetolla3324 4 ปีที่แล้ว +1

    Очень интересно было бы если начнете новую рубрику где расскажете про языках и технологиях. Какой язык для чего нужен, в чем лучше остальных. В интернете конечно много всяких материалов но все они либо тупо опираются на статистику стэковерфлоу или же черезчур перемудрены что очень сложны новичкам. Сейчас этих самых ЯП и технологии очень много что всякие разные мнении о том что, мол тот язык круче или хуже сбивают с толку начинающих. Хотелось бы иметь какой то минимальной ясности в этом плане. Посмотрел последний стрим о реактивности, где под конец немножко затронули это, но там не все разобрано да и акцент самого стрима ставился не на это. Так что думаю все таки стоит открыть эту тему. Ввиде коротких обзорных видео или стримов, это уже решать вам. Но чтобы разговор был о реально значимых аспектах(с историческимим данными, сведениями) а не стэкоферфлоуских статистиках как это делают все блогеры. Спасибо!

  • @valaubr4887
    @valaubr4887 4 ปีที่แล้ว +3

    Как говорится: Все очень сложно, но очень интересно, больше дичи богу дичи!

  • @АндрейСинельников-ы2м
    @АндрейСинельников-ы2м 4 ปีที่แล้ว

    Супер, даже хз, попадется ли такой стек в работе

  • @smdfb7334
    @smdfb7334 4 ปีที่แล้ว

    Ого, это из-за того что я просил?

  • @CRCx86
    @CRCx86 4 ปีที่แล้ว

    Спасибо!

  • @alexeysharandin7364
    @alexeysharandin7364 4 ปีที่แล้ว +1

    @letsCode, Андрей, по свех молодежному quarkus.io что нить делать планируешь?

    • @letsCodeDru
      @letsCodeDru  4 ปีที่แล้ว

      Хз.еще пока не выработал к нему каких-то эмоций )

    • @alexeysharandin7364
      @alexeysharandin7364 4 ปีที่แล้ว

      @@letsCodeDru Ну а что там эмоции то... Экосистемы как у спринг-бут еще нет, то есть для написания всякой мелочи быстро стартующей и масштабируемой, для тех кто на golang не пишет, чтобы в k8s засовывать. Пока там только одна фишка -> билд в graal. А дальше или спринг из инкубатора с graal-support вылезет или quarkus к себе затянет что-то новое. Как раз к тому времени Loom созреет и начнется новая миграция :)))

  • @andreyshpitko9630
    @andreyshpitko9630 4 ปีที่แล้ว

    cool!!!!!!!
    супер спасибо!!!!!
    а по Elasticsearch межете сделать паро видео?

  • @Igor-uz3vn
    @Igor-uz3vn 4 ปีที่แล้ว

    Вопрос! А как много проектов сейчас делается или переделывается на реактивном спринге?

  • @knowikDen
    @knowikDen 4 ปีที่แล้ว +1

    Спасибо за отличный материал! В прочем как всегда :)
    Вопрос: если в spring инициализаторе выбрать packaging - war, то приложение запускается в контейнере tomcat.
    Причем дополнительно генерируется класс ServletInitializer.
    После запуска конечная точка localhost:8080/hello не доступна. Ошибка 404
    Можете сказать почему?
    Как указать context root?

  • @rudolfsikorsky7900
    @rudolfsikorsky7900 2 ปีที่แล้ว

    Так и не понял как раздать статический контент (например, файл index.html где нет ничего кроме HTML) через Webflux используя "классические" контроллеры. Как правильно написать @RestController ?

  • @user-zx5sv3hb2u
    @user-zx5sv3hb2u 4 ปีที่แล้ว

    А было где-то описание разницы мавен и градл?

  • @yevheniikravchenko9127
    @yevheniikravchenko9127 4 ปีที่แล้ว

    Лайк + коммент)

  • @BarbosSergos
    @BarbosSergos 4 ปีที่แล้ว

    Андрей, а можно видео как использовать webFlux с Korlin coroutine? :) Недавно пытался реализовать редирект get запроса через @RestController и Korlin corourine, так ничего и не вышло. Остановился на чистом webFlux.. Хотелось бы глубже, с "дичью", разобрать работу webFlux и Korlin coroutine.

  • @snake--
    @snake-- 4 ปีที่แล้ว +14

    "старый" стиль как то лаконичнее смотрится

    • @trygoboi4790
      @trygoboi4790 4 ปีที่แล้ว

      Намного лаконичнее. Согласен с тобой. Этот реактивный способ похож на пхпишный или джанго стиль, который мне вообще не нравится. Одна аннотация раньше делала то что здесь несколько строк кода.

    • @arthurfonzerelli6484
      @arthurfonzerelli6484 4 ปีที่แล้ว

      Я что-то не уловил вообще в чем смысл этого нового "стиля". Зачем одну сущность - контроллер делать на 2 - роутер и хэндлер, которые еще и находятся в разных классах и пакетах?

    • @trygoboi4790
      @trygoboi4790 4 ปีที่แล้ว +1

      @@arthurfonzerelli6484 это для нас Джаверов непривычно. В пхп и джанго так и делают, роутеры в одном месте, хэндлеры в другом. В пыхе еще так, в джанго вообще что то типо глобальных и локальных для приложения роутеров и плюс еще хендлеры, вот это реально страшно и странно, и без строгой типизации вообще сложно разобраться.

    • @illarionborts7181
      @illarionborts7181 4 ปีที่แล้ว +1

      @@arthurfonzerelli6484 ну во-первых в старом стиле тоже есть деление на контроллер и сервис (часто метод в контроллере вызывает метод в сервисе), а во-вторых никто ж не мешает засунуть побольше логики прямо в роутер, если хочется, будет Big Fat Router :)

  • @beSmarterThanMe
    @beSmarterThanMe 4 ปีที่แล้ว +2

    Очень прошу сними туториал что за чем учить новичку от java core и до профессионала. Вангую будет очень много просмотров и подписок после него). Спасибо!

  • @igorvysotskyi
    @igorvysotskyi 4 ปีที่แล้ว

    Пожалуйста, можно о многопоточности, также доступно и глубоко?!

  • @АлександрВасильев-ы1й2х
    @АлександрВасильев-ы1й2х 4 ปีที่แล้ว

    Не понял что за дичь, но чем подробнее и обширнее гайд, тем лучше :)

  • @rolymeck
    @rolymeck 4 ปีที่แล้ว

    Спасибо за видео, Андрей! Скажи, чем все это добро лучше того же Express`a на NodeJS? Ну кроме строгой типизации конечно) в браузере стоит плагин, который маячит какие технологии у сайта, и в большинстве случаев (и даже у хайлоада, например Яндекс.Музыка) - там нода

    • @letsCodeDru
      @letsCodeDru  4 ปีที่แล้ว +2

      Нода у многих фронт раздает. А бэк на чем-нибудь посерьезней

    • @rolymeck
      @rolymeck 4 ปีที่แล้ว

      Раздавать фронт, это отдать html css и js бандлы? А все аяксы уже на gateway api -> back-end?
      Тогда опять же зачем нода, если есть nginx?

  • @Numen_
    @Numen_ 4 ปีที่แล้ว

    Классно! а можете плиз как-нибудь пошарить свои настройки которые используете в idea?
    цветовые, функциональные

    • @letsCodeDru
      @letsCodeDru  4 ปีที่แล้ว

      Дракула. Все остальное стандартное для винды

  • @Ilya-o9o
    @Ilya-o9o 3 ปีที่แล้ว

    07,09,2021
    мы хотим больше дичи, больше подробностей, до байтов!!!1!

  • @СергейКрылов-ж4н
    @СергейКрылов-ж4н 4 ปีที่แล้ว

    Лайк

  • @ddmit04
    @ddmit04 4 ปีที่แล้ว

    Чудесно

  • @victormog
    @victormog 4 ปีที่แล้ว +1

    Вау!

  • @dmytromiroshnychenko420
    @dmytromiroshnychenko420 4 ปีที่แล้ว

    Хех, первый коммент на ютубе.. и да, больше такой дичи. Хочется получить максимум полезностей из твоего опыта :))

  • @МаксМакс-ч8к
    @МаксМакс-ч8к 5 หลายเดือนก่อน +1

    Очень интересно, но ни фига не понятно))))

  • @Light-qo9vo
    @Light-qo9vo 4 ปีที่แล้ว

    А как мусташ рендерит юзера? мы ведь передаем ему мапу, он сам делает get по ключу user и достает значение?

  • @gaben-agent
    @gaben-agent 4 ปีที่แล้ว

    А какие следы сервлет контейнера должны быть?
    Лайк под видео поставил бтв)

    • @letsCodeDru
      @letsCodeDru  4 ปีที่แล้ว

      Имя пакетов

  • @НикитаН-й2н
    @НикитаН-й2н 4 ปีที่แล้ว +1

    ждал в конце неудачные дубли как раньше, с кошкой там :(

    • @letsCodeDru
      @letsCodeDru  4 ปีที่แล้ว +1

      Оставляю, когда они интересные

  • @hamadmiral
    @hamadmiral 4 ปีที่แล้ว +2

    Больше дичи =)
    И пасиб за видео)

  • @Taluksya
    @Taluksya 4 ปีที่แล้ว +1

    можно не мучатся с задачами грейдл, можно просто скачать эклипс и там так же все подхватится, только бесплатно)

  • @qweghj2660
    @qweghj2660 4 ปีที่แล้ว

    Как использовать @JsonView в WebFlux?

    • @qweghj2660
      @qweghj2660 4 ปีที่แล้ว

      А, все нашёл, кому интересно, смотрите в документации 1.5.2. ServerResponse

  • @Ivan-lx5lw
    @Ivan-lx5lw 4 ปีที่แล้ว +1

    👍

  • @antnzr656
    @antnzr656 4 ปีที่แล้ว

    Винду что ли поставил? А где kubuntu?

    • @letsCodeDru
      @letsCodeDru  4 ปีที่แล้ว

      Поломалась

  • @ПавелШевчук-ь6ъ
    @ПавелШевчук-ь6ъ 4 ปีที่แล้ว

    Из этого видео не понял лишь одно. Почему у тебя так мало подписчиков?)

  • @serhiikrupskyi2954
    @serhiikrupskyi2954 4 ปีที่แล้ว +1

    Вот бьі проект с написания микросервисов от автора. А то нормальньіх примеров в интернете просто нету.

  • @mikesomebody5404
    @mikesomebody5404 4 ปีที่แล้ว

    Ого, а ты чего на винду переехал?

    • @letsCodeDru
      @letsCodeDru  4 ปีที่แล้ว

      Ноут паламался :( а на рабочем линуксе не так удобно

  • @kannsky8812
    @kannsky8812 4 ปีที่แล้ว

    кроме дичевого мустажа есть что-нибудь другое? лучше бы простой хтмл использовать

    • @andrewsapolsky3880
      @andrewsapolsky3880 4 ปีที่แล้ว

      хах, хтмл просто не заюзаешь, можешь юзать thymeleaf, freemarker...

  • @victorchilari
    @victorchilari 4 ปีที่แล้ว +2

    Что значит "реактивный", что ты под этим подразумеваешь?

  • @СергейВладимирович-щ5о6ъ
    @СергейВладимирович-щ5о6ъ 4 ปีที่แล้ว +1

    а можно помедленнее?

  • @vorobeyrr
    @vorobeyrr 2 ปีที่แล้ว

    больше такой дичи)

  • @togrus8895
    @togrus8895 4 ปีที่แล้ว

    Больше подобной дичи, хорошо когда объясняешь что к чему

  • @heorhiutseuski4635
    @heorhiutseuski4635 3 ปีที่แล้ว +1

    Больше дичи =))

  • @wodzimierzletov2990
    @wodzimierzletov2990 4 ปีที่แล้ว

    Нужно больше дичи!

  • @AnnaSmirnova1
    @AnnaSmirnova1 4 ปีที่แล้ว

    Больше дичи для бога дичи!

  • @ЕвгенийЯкшин-ж8щ
    @ЕвгенийЯкшин-ж8щ 4 ปีที่แล้ว

    нужна вся дичь которая только есть

  • @EvilCartman
    @EvilCartman 4 ปีที่แล้ว

    Побольше дичи, конечно!

  • @churchofhigherpower._.
    @churchofhigherpower._. 2 ปีที่แล้ว

    Больше дичи!!!

  • @rudolfsikorsky7900
    @rudolfsikorsky7900 2 ปีที่แล้ว

    Если .contentType(MediaType.TEXT_PLAIN), то кириллица будет выводиться кракозябрами. Надо указывать полный заголовок, например, так:
    return ServerResponse
    .ok()
    // .contentType(MediaType.TEXT_PLAIN)
    .header("HttpHeaders.CONTENT_TYPE", "text/plain; charset=utf-8")
    .body(body);
    А по теме видео, хотелось бы пояснений, по сравнению с "обычным" REST: роутер теперь вместо контроллера, хэндлер вместо сервиса, так что ли?

  • @ВасяВаслин
    @ВасяВаслин 2 ปีที่แล้ว

    Как в Mono отловить исключение и вернуть объект в его текстом?
    Очень много onError*..., но либо на входе мы не имеем исключение, имеем результат предыдущей операции, либо почему-то не резолвится
    метод
    onErrorReturn(Class type, T fallbackValue), хотя в приведённом коде ниже всё совпадает (
    Например, при попытке добавить уже существующего пользователя
    @PostMapping
    Mono addUser(@RequestBody User user) {
    return Mono.just(user).map(userService::addUser)
    .onErrorReturn(UserAlreadyExistsException.class, ResponseEntity.status(HttpStatus.NOT_ACCEPTABLE).body("User already exists"))
    .map(usr -> ResponseEntity.status(HttpStatus.OK).body(modelMapper.map(usr, UserDto.class)));
    }