WebFlux. R2DBC с Postgres в Spring (плюс миграции с Flyway)

Поделиться
HTML-код
  • Опубликовано: 9 янв 2025

Комментарии •

  • @СергейЧубуров
    @СергейЧубуров 2 года назад +2

    Я - человек простой: вижу видосик на letsCode - ставлю лайк)
    Снимаю шляпу перед автором, всё чётко, без лишней воды, и практично.
    Сочетание затраченное время/полученное понимание - самое лучшее среди всех ютьюб видосиков что я смотрел❤‍🔥

  • @Rizomus
    @Rizomus 11 месяцев назад

    Дай бог тебе здоровья, добрый человек!

  • @MiSaxap
    @MiSaxap Год назад +2

    Спасибо!) интересно что вы думаете про Liquibase vs Flyway

  • @takhir.atamuratov
    @takhir.atamuratov 4 года назад +2

    Коротко и ясно, то что надо! Благодарность автору за видео!

  • @pompei2
    @pompei2 4 года назад +2

    классно, всё понятно, теперь я умею реактивить в яве. Благодарность автору от души

  • @rodyslavsinitsyn6812
    @rodyslavsinitsyn6812 4 года назад

    Жирный лайк. Запросы на апи через консоль хрома это конечно хардкор)

  • @antondoronin1261
    @antondoronin1261 4 года назад +10

    Андрей как всегда на высоте:)
    P.S.: забавно видеть, как крутые разрабы так же программируют методом "запустили - чёт упало - я всё понял - заработало", но делают это они быстро:)))

    • @Игорь-б5ц2ъ
      @Игорь-б5ц2ъ 4 года назад +1

      Магия монтажа 😁

    • @letsCodeDru
      @letsCodeDru  4 года назад +2

      Ну нет. Тут я почти не вырезал лишнего. Пору 20-30 секундный мычание только.

    • @letsCodeDru
      @letsCodeDru  4 года назад +6

      Ну опытные разрабы тоже ошибаются. Особенно на технологиях, которые ещё не использовали мильён раз в проектах. Какие-то простые вещи бывает пишу с первого раза и сразу удачно, но это обычно что-то до абсолютно понятное. Опытные водители тоже всех ямок объехать не могут, а те, что есть объезжают быстро и с тряской)

    • @IsaTimur
      @IsaTimur 4 года назад +1

      @@letsCodeDru что тут крутого, это реально доступный и понятный язык и аналогии, которые приводишь, спасибо Андрей

  • @sovrinfo
    @sovrinfo 2 года назад

    Спасибо за видео.Коммент в поддержку!

  • @zhenyalee2731
    @zhenyalee2731 4 года назад

    посмотрел 3 видео о webFlux. Очень крутые и информативные видео!Ещё много видео на канале , которые очень интересны для меня. Буду смотреть! Подписался!

  • @PitiedSpace
    @PitiedSpace 4 года назад

    Как раз изучаю R2DBC, видео в тему! Я рад! Ты самый лучший!

  • @malloc9365
    @malloc9365 4 года назад +2

    Спасибо за видео, оч интересно!

  • @ZemT861
    @ZemT861 4 года назад

    Наконец-то я понял больше чем не понял. Хорошие заметки, очень полезно

  • @samokysha
    @samokysha 4 года назад +1

    Спасибо за крутой видосик) Мотивация прёт, уже вторую неделю пилю свой пет-проект)

  • @yuriihizun7183
    @yuriihizun7183 4 года назад +1

    Клас, круто, и все ставим лайк.

    • @stas4985
      @stas4985 4 года назад +1

      захожу каждые 3 дня проверять когда ждать новую серию

  • @vadympylypchenko5801
    @vadympylypchenko5801 4 года назад

    Спасибо за твои видео

  • @barrettkepler7618
    @barrettkepler7618 2 года назад

    Спасибо большое!

  • @oleksandrdyachuk3951
    @oleksandrdyachuk3951 3 года назад

    Спасибо огромное - материал бомба!

  • @nikitaantonenko3287
    @nikitaantonenko3287 4 года назад

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

  • @yerzhanmeshitbayev6812
    @yerzhanmeshitbayev6812 2 года назад

    Крутой канал, круто автор!!!

  • @ВадимМитин-и1т
    @ВадимМитин-и1т 4 года назад

    Балдежный туториал

  • @ЛёхаКорчагин-ю7т
    @ЛёхаКорчагин-ю7т 3 года назад

    Отличное видео! Хотелось бы еще видос с разбором правильного построения тестов под webFlux и вообще реактивного стиля...

  • @eugenea7469
    @eugenea7469 3 года назад

    По поводу ОРМ, недавно вышел реактивный JOOQ

  • @Lolikon929
    @Lolikon929 4 года назад

    вырос на твоих видосах

  • @wouchref2501
    @wouchref2501 4 года назад

    Прикольно, но хотелось бы еще глянуть на функциональный подход) В любом случае спасибо за годноту)

  • @tonyv3gas
    @tonyv3gas 4 года назад

    все чотко по полкам!

  • @notanord
    @notanord 4 года назад

    Крутой видос!

  • @phil2964
    @phil2964 4 года назад

    Спаисбо, прет норм)

  • @ЄгорПавленко-м4ь
    @ЄгорПавленко-м4ь 4 года назад +1

    17:03 Насколько помню, документация Postgresql рекомендует для VARCHAR размер не указывать для performance.
    P.S. www.postgresql.org/docs/11/datatype-character.html
    Tip
    There is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While character(n) has performance advantages in some other database systems, there is no such advantage in PostgreSQL; in fact character(n) is usually the slowest of the three because of its additional storage costs. In most situations text or character varying should be used instead.
    Хотя, перечитал, это скорее про character(n), чем varchar(n)

    • @ЄгорПавленко-м4ь
      @ЄгорПавленко-м4ь 4 года назад

      Хотя, перечитал, это скорее про character(n), чем varchar(n):
      www.postgresql.org/docs/11/datatype-character.html
      Tip
      There is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While character(n) has performance advantages in some other database systems, there is no such advantage in PostgreSQL; in fact character(n) is usually the slowest of the three because of its additional storage costs. In most situations text or character varying should be used instead.

    • @zawesome899
      @zawesome899 4 года назад +1

      На варчар тоже никто не ставит;)

  • @Oleg77777100
    @Oleg77777100 4 года назад +1

    Крутое видео, спасибо! Что думаешь о сравнении Flyway и Liquibase ?!

  • @FlawlessVictory-j8j
    @FlawlessVictory-j8j 4 года назад +1

    Есть ReactiveMongo от спринга.

  • @ЕвгенийЯкшин-ж8щ
    @ЕвгенийЯкшин-ж8щ 4 года назад +9

    осознанный комментарий для продвижения дичи

  • @Максон-ъ1ь
    @Максон-ъ1ь 4 года назад

    как раз сейчас перехожу на реактивщину, как закрепление прочтенного в доках - гуд ) больше дичи!) спасибо

    • @jdjekfhoe
      @jdjekfhoe 4 года назад

      А вы работаете спринг разработчиком?

  • @IIJustIIsicariusII
    @IIJustIIsicariusII 2 года назад

    Сейчас уже(Spring boot 2.6.3) с такими зависимостями добавляет:
    implementation 'org.springframework:spring-jdbc'

  • @bearbear4893
    @bearbear4893 4 года назад +1

    Почаще про какие-либо подводные камни сообщай) конечно набитые шишки дольше помнятся, но лучше их поменьше)

  • @andreyy.k.9775
    @andreyy.k.9775 3 года назад

    зачем делать конструкторы у сервисов, когда у ломбока есть наташка "RequiredArgsConstructor" которая все final переменные пихает в конструктор?
    спасибо за видео, было интересно!

  • @andrewblack1684
    @andrewblack1684 4 года назад +1

    А чего йамл свойства не используешь? Или ностальгия по пропертям?

  • @Ivan54r
    @Ivan54r 4 года назад

    в идеи же можноspring init кликать

  • @vadympylypchenko5801
    @vadympylypchenko5801 4 года назад

    Ох, печально за 10 дней и 500 лайков нет, а плейлист то супер интересный мог бы выйти.

    • @letsCodeDru
      @letsCodeDru  4 года назад

      Вот че-то да. Больше просили :(

    • @Oleg77777100
      @Oleg77777100 4 года назад +1

      @@letsCodeDru максимальные просмотры на нубовых темах, а до реактивных соединений с БД даже не у всех сеньоров руки дошли, еще доберутся)

  • @РоманВладимирович2024

    Что может послужить причиной, для того чтобы переписать jdbc на r2dbc?

  • @ЄгорПавленко-м4ь
    @ЄгорПавленко-м4ь 4 года назад +1

    Кто-нибудь продакшн уже делал с R2DBC? Можно уже использовать?

    • @stas4985
      @stas4985 4 года назад +1

      можно

  • @МаксимКанунников-з1б

    Даёшь ReactiveMongoRepository ? ), а еще удобно делать запросы через файл HTTP Request в Idea

  • @ИльяДрозд-и3ш
    @ИльяДрозд-и3ш 4 года назад

    Почему для отправки запросов не используете Postman? Так ведь гораздо удобнее

  • @matwego
    @matwego 4 года назад +1

    Андрей, привет, спасибо за видео! Только почему не используешь аннотацию @RequiredArgsConstructor ? Удобнее ведь :)

    • @letsCodeDru
      @letsCodeDru  4 года назад

      Использую, когда уместна

    • @zawesome899
      @zawesome899 4 года назад

      @@letsCodeDru Она очень уместна при инжекте бинов, вместо конструктора с автовайром)

  • @КириллЛомовской
    @КириллЛомовской 3 года назад

    А что будет если с WebFlux использовать обычный репозиторий не реактивный, по идее все равно каждый запрос к БД будет обрабатываться, в отдельно потоке, и приложение будет реактивным, только разница, в том, что запросы к БД будут блокирующими, но работать то будет нормально так?

  • @explo9087
    @explo9087 3 года назад

    скачал проект. но почему то не происходит сохранения в базу. ошибки никакой не выдает. а в базе пусто.

  • @ДмитрийКомаров-е7ъ
    @ДмитрийКомаров-е7ъ 4 года назад +1

    Андрей, как обычно круто
    Но почему ты выбрал подход через контроллеры, а не через хэндлеры?
    Спасибо

    • @letsCodeDru
      @letsCodeDru  4 года назад +2

      Меньше букаф писать. Читать привычней. Переезжать с готовым кодом проще.

  • @malkovmaksim2698
    @malkovmaksim2698 4 года назад

    Начал смотеть думая о том, что о сейчас расскажут про github.com/davidmoten/rxjava2-jdbc
    Ждем следующих серий

  • @Kitty-w6q7p
    @Kitty-w6q7p 8 месяцев назад

    Насколько WebFlux актуален сегодня при том что завезли виртуальные потоки?

  • @anu8is930
    @anu8is930 4 года назад +1

    А как же Linux?)))
    Спасибо за видос, ждем следующую серию)

    • @letsCodeDru
      @letsCodeDru  4 года назад

      Ноут сломался, перебивают на десктопе

  • @MrGrzegorz
    @MrGrzegorz 4 года назад

    Цитата люблю я так писать код :)

  • @alexander.shakhov
    @alexander.shakhov 4 года назад

    Возможно удобнее было бы автору создавать базу тоже на лету, shell скриптом например и поднимать db в докере? А за видос спасибо! Лайк!

  • @seatconnect224
    @seatconnect224 2 года назад

    не совсем понял суть WebFlux и R2DBC в данном примере, если в конце пришлось обновить страницу, чтобы записи обновились )

  • @fachelgo5202
    @fachelgo5202 4 года назад

    хелп , пишу "id bigserial primary key " в файле V1__Initial_db.sql, а он пишет что "unable to resolve object type bigserial"

  • @haimlvov10
    @haimlvov10 4 года назад

    Здравствуйте! Спасибо за видео!
    Хотел спросить, какой Linux distribution Вы используете?

    • @renniqs1084
      @renniqs1084 4 года назад +1

      Тут винда((

    • @victormog
      @victormog 4 года назад +1

      😁

    • @aiwprton805
      @aiwprton805 4 года назад

      нафик он нужен на десктопе?

  • @gwelwan
    @gwelwan 4 года назад

    А github.com/hibernate/hibernate-rx разве не ORM с поддержкой реактивности ?

    • @ЄгорПавленко-м4ь
      @ЄгорПавленко-м4ь 4 года назад

      This project is still at an experimental stage of development. Со страницы по ссылке.

  • @gaben-agent
    @gaben-agent 4 года назад

    ну, насколько я понимаю, лучше всегда создавать все через миграцию, особенно если разработка идет в несколько лиц. Лучше уж сразу так делать.
    Кстати, почему не liquibase?

    • @letsCodeDru
      @letsCodeDru  4 года назад

      Люблю sql. Привык к flyway

    • @ЄгорПавленко-м4ь
      @ЄгорПавленко-м4ь 4 года назад

      ​@@letsCodeDru Кстати недавно выбирал между ними. Интересно Ваше мнение. Мои краткие выводы были такие:
      For DB migrations was chosen Liquibase tool between Liquibase and Flyway (both represented in Spring starter tool).
      Reason: Liquibase has rollback in free version.
      Еще я не включал migration tool в pom.xml:
      Liquibase is not incorporated to Spring project itself (not in pom.xml) because in that case it run migrations on app start which is bad practice as I think.

  • @TrololoWoT
    @TrololoWoT 4 года назад

    возможно глупый вопрос, но почему не генерируете проект сразу в idea?

    • @letsCodeDru
      @letsCodeDru  4 года назад

      Хз. Привычка, походу

  • @Taluksya
    @Taluksya 4 года назад

    если много компонентов нужно автовайрить в классе вы их тоже в конструктор ставите?

    • @antondoronin1261
      @antondoronin1261 4 года назад

      Да, но у нас есть ломбок. @RequiredArgsConstructor сделает это за нас

  • @ИльдарШаяхметов-о3ь
    @ИльдарШаяхметов-о3ь 4 года назад +3

    А будет ли webflux с каким-нибудь js фреймворком, типо react

    • @IsaTimur
      @IsaTimur 4 года назад

      бери простой webflux и простой jhipster с React-ом
      )

    • @alexeysharandin7364
      @alexeysharandin7364 4 года назад

      Взять тот же FE сарафан и мигрировать бэкэнд на флюкс.

    • @stas4985
      @stas4985 4 года назад

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

  • @romanroman6326
    @romanroman6326 4 года назад

    Блин, ребят, давайте поднажмем до 500. Месяц уже продолжения нет

  • @taras7630
    @taras7630 4 года назад +1

    Первый

  • @gaben-agent
    @gaben-agent 4 года назад +1

    лол, так эта хрень вообще не ORM. Я понимаю, более эффективная работа с бд. А если у меня миллиард one/many-to-many связей в бд, я могу тут что-то прикрутить на уровне OneToMany аннотаций, чтобы все автоматом прилетало? Или (возможно пока) придется страдать написанием нативного sql над методами репозитория, как только появляется какая-то из таких связей?

  • @ИльдарШаяхметов-о3ь
    @ИльдарШаяхметов-о3ь 4 года назад +2

    С монгой можно было, там есть реактив

  • @MrAPPOLON123
    @MrAPPOLON123 2 года назад

    я так и не понял, тот же контроллер, тот же сервис и репо, а где реактивщина? кроме моно и флакс ниче не поменялось

  • @IsaTimur
    @IsaTimur 4 года назад

    @letsCode Андрей к ссылке на гит репо приклеилось словоSpring
    а вот рабочая ссылка
    github.com/drucoder/catalizator/tree/R2DBC_flyway

  • @bearbear4893
    @bearbear4893 4 года назад

    Дожмите 500, камоооооооон

  • @СергейКрылов-ж4н
    @СергейКрылов-ж4н 4 года назад

    Завозим фуру лайков

  • @КоноваловАлександр-т5ж

    какая то не понятная дичь....Надо пересмотреть и ознакомиться с р2дбс

  • @KyivanEnjoyer
    @KyivanEnjoyer 4 года назад

    Ужасное видео! Опять бекенд не на NodeJS. Лайк) Кстати, я Flyway пользуюсь, мне никаких доп зависимостей не нужно ;/

    • @letsCodeDru
      @letsCodeDru  4 года назад +1

      С чем используешь? С spring data? Jpa? Они напару тянут jdbc в транзитивных зависимостях. Ессно тогда не надо отдельно указывать

    • @KyivanEnjoyer
      @KyivanEnjoyer 4 года назад

      @@letsCodeDru а ну да, spring-data-jpa :) буду знать) это когда начал изучать спринг сразу с спринг бута )00

  • @victormog
    @victormog 4 года назад +4

    Боюсь показаться тупым, но хотя бы два слова, в чём прикол от R2DBC?!

    • @letsCodeDru
      @letsCodeDru  4 года назад +1

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

    • @alexeyskakun1088
      @alexeyskakun1088 4 года назад +1

      ​@@letsCodeDruНемного добавлю: JDBC априори технология на блокировках, следовательно никак не получиться использовать в реактивнхы приложениях. Ранее спринг умел только реактивные Mongo репозитории (так как реактивный драйвер был), были попытки написать какие-то реактивные дравера для RDBMS, но это не было стандартом! R2DBC Во всяком случае внятная штука, идущая к стандарту (r2dbc.io/). Т.е. Кратко: R2DBC это когда хочеться WebFlux и Reactor в приложении но так же хочеться RDBMS.

  • @СергейВладимирович-щ5о6ъ

    Что произошло на 03:38 ? дизлайк ловите за такое!)

  • @dariadralina502
    @dariadralina502 2 года назад

    Спасибо за видео!