Spring по верхам: База данных REST-сервиса

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.ย. 2024
  • В серии коротких роликов "Spring по верхам" я вкратце рассказываю о применении экосистемы Spring при разработке приложений на платформе Java.
    Третий ролик посвящён использованию реляционных СУБД при разработке REST-сервисов.
    Репозиторий проекта: github.com/ale...
    Паблик в VK: public2...
    Канал в Telegram: t.me/+TZCuO38v...
    #java #spring #flywaydb #testcontainers #postgresql

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

  • @artyomzolotoverkhov8468
    @artyomzolotoverkhov8468 3 หลายเดือนก่อน +2

    Спасибо за урок, было интересно.

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

    о боже можно больше про докер! вы его упомянули в 3:20

  • @user-tt3vu5ob7g
    @user-tt3vu5ob7g 10 หลายเดือนก่อน +3

    Благодарность за труд, окно закрывает часть информации(

  • @user-bf2ub2ri4i
    @user-bf2ub2ri4i ปีที่แล้ว +2

    Очень крутые обучалки для начинающих, спасибо огромное))))))

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

    все видео суперполезные, лайк

  • @dmaberlin
    @dmaberlin 8 หลายเดือนก่อน +2

    понравилось, ставлю лайк =)

  • @AB-ku1su
    @AB-ku1su ปีที่แล้ว +4

    Будут ли видео про джава и докер, джава и брокер сообщений, микросервисы. Нравится ваш стиль видеоуроков

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

      У меня есть в планах освещение большого количества тем, в т.ч. и вышеуказанных, времени хватило бы)

  • @user-iu6yz6ck6h
    @user-iu6yz6ck6h ปีที่แล้ว +2

    Спасибо! ) Очень полезно. Планируется ли следующее видео и если да, то на какую тему?

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

      Да, следующее видео будет, посвящено оно будет Spring Security

  • @user-in8uk6yz9r
    @user-in8uk6yz9r 6 หลายเดือนก่อน

    @shurik_codes
    В целом интересно, доходчиво. Я узнал несколько новых моментов, с которыми не сталкивался ранее в силу специфики и принятых flow разработки у нас.
    Автор, безусловно, молодец - умеет рассказать понятно и интересно о непростых для простого человека вещах. Считаю, что нужно продолжать делиться опытом и знаниями далее.
    Несколько шероховатостей...
    Неплохо было бы удостовериться, что сервис рабочий после внесения правок. Синтетический интеграционный тест запускается, а сервис не поднимается.
    Наверное, также стоит упомянуть, что использование тестконтейнеров подразумевает установленный и запущенный на PC Docker.

    • @Leon-do8tf
      @Leon-do8tf 6 หลายเดือนก่อน

      какой сервис?
      "Неплохо было бы удостовериться, что сервис рабочий после внесения правок. Синтетический интеграционный тест запускается, а сервис не поднимается. "
      "Наверное, также стоит упомянуть, что использование тестконтейнеров подразумевает установленный и запущенный на PC Docker." - Наверное, учитывая, в таком случае что вы упомянули, что следует упомянуть также то что вы упомянули, не менее важно упомянуть и то, что не использование тестконтейнеров подразумевает обратное

  • @Selavy82
    @Selavy82 10 หลายเดือนก่อน +1

    Довольно специфический выбор framework'а для работы с DB - мало кто в наше время его использует в Prod'е. Конечно, понятно нежелание вступать в HolyWar по поводу Hibernate'а, но по крайней мере Spring Data JDBC был бы, мне кажется, более оптимальным компромиссом.

    • @shurik_codes
      @shurik_codes  10 หลายเดือนก่อน +2

      С одной стороны, материалов по JPA/Hibernate достаточно много, а я пытаюсь претендовать хоть на какую-то уникальность, с другой - Spring JDBC реально удобный (и используемый в проде) инструмент, когда речь идёт о работе с реляционными базами данных и оптимальном использовании SQL-запросов. Плюс JDBC максимально нагляден и порог вхождения в него на мой взгляд ниже, чем у тех же JPA/Hibernate.

    • @sergeyshcherbakov3653
      @sergeyshcherbakov3653 7 หลายเดือนก่อน

      а мне нравится Spring JDBC. В относительно простых сервисах он вполне органично смотрится. Из плюсов: полный контроль над запросами, никакой магии. Понятно, что это же можно смело записать и в недостатки, ибо полный контроль достигается прописыванием ручками логики запросов и гребаного мапера. Но, повторюсь, в простых ситуациях вполне себе нормальный подход )

    • @user-in8uk6yz9r
      @user-in8uk6yz9r 6 หลายเดือนก่อน

      @@sergeyshcherbakov3653 Самое смешное, что упомянутый выше Hibernate работает по большей части только для простых ситуаций. Как только выходишь за рамки, то нужно быть или ГУРУ его, или иметь понятную схему взаимодействия. Для этих случаев как раз всевозможные JDBC лучше подходят.

  • @user-oe4ze9uc1j
    @user-oe4ze9uc1j ปีที่แล้ว +1

    Почему предпочитаете использовать JdbcOperations, а не NamedParameterJdbcTemplate?

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

      Я использовал JdbcOperations в качестве примера. На практике я чаще использую NamedParameterJdbcTemplate

  • @aleksey9059
    @aleksey9059 9 หลายเดือนก่อน

    Не уловил. Здесь в итоге не используется FlyWay? Правильно понял? Спасибо за классный контент!)

    • @shurik_codes
      @shurik_codes  9 หลายเดือนก่อน +1

      Используется, схема описывается на 15:24 , Flyway её автоматически подхватывает

    • @user-in8uk6yz9r
      @user-in8uk6yz9r 6 หลายเดือนก่อน

      Используется. Если допилить сервис до рабочего состояния после правок в части конфигурирования постгри, то можно увидеть, что создастся таблица флайвея с записью выполненной миграции данных.

    • @Leon-do8tf
      @Leon-do8tf 6 หลายเดือนก่อน

      @@user-in8uk6yz9r Какой сервис?
      "Если допилить сервис до рабочего состояния после правок в части конфигурирования постгри..."

  • @pavelgurevich4018
    @pavelgurevich4018 5 หลายเดือนก่อน

    Всем привет, столкнулся с проблемой Error creating bean with name 'jdbcOperationsTaskRepository' , может кто-то ее решил , код и pom как на видео

    • @shurik_codes
      @shurik_codes  5 หลายเดือนก่อน

      Docker установлен?

  • @Maksim-hn3ln
    @Maksim-hn3ln ปีที่แล้ว +1

    Правильно ли я понял, что на компе должен быть установлен docker desktop? А то у меня тесты не проходили, как у тебя в конце видео. Как только установил и запустил докер, все заработало. Я просто до этого докером не пользовался, поэтому не знаю что-там по чем

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

      Да, всё верно, нужен Docker, т.к. база разворачивается в нём при помощи Testcontainers

    • @Leon-do8tf
      @Leon-do8tf 6 หลายเดือนก่อน

      "Правильно ли я понял, что на компе должен быть установлен docker desktop? " - нет, неправильно, не должен (можно не использовать Testcontainers)

    • @artyomzolotoverkhov8468
      @artyomzolotoverkhov8468 3 หลายเดือนก่อน

      @@Leon-do8tf в случае как у автора ролика докер обязателен

  • @Leon-do8tf
    @Leon-do8tf 6 หลายเดือนก่อน

    кто отчищает db после тестов? Аннотация @Transactional или как?
    @Sql("/sql/tasks_rest_controller/test_data.sql")
    @Transactional
    @SpringBootTest
    @AutoConfigureMockMvc(printOnlyOnFailure = false)
    class TaskRestControllerIT {

    • @shurik_codes
      @shurik_codes  6 หลายเดือนก่อน

      @Transactional, после завершения теста транзакция автоматически откатывается