Video není dostupné.
Omlouváme se.

АОП в Spring Framework

Sdílet
Vložit
  • čas přidán 26. 07. 2023
  • Наряду с контейнером инверсии управления и внедрением зависимостей важной составляющей Spring Framework является реализация аспектно-ориентированного программирования (АОП), основная задача которого - внедрение сквозной логики в приложение. Под сквозной логикой понимается логика, применимая одновременно ко множеству компонентов, такая как управления транзакциями, доступом, журналирование и т.д.
    В Spring Framework и других фреймворках из его экосистемы аспектно-ориентированное программирование используется для неявного добавления сквозной логики к пользовательским компонентам. Так, например, непосредственно в самом Spring Framework реализовано декларативное управление транзакциями с использованием аннотации @Transactional, а в Spring Security - контроль доступа с использованием аннотаций @PreAuthorize и @PostAuthorize.
    00:01:30 Что такое аспектно-ориентированное программирование
    00:04:07 Компоненты АОП
    00:06:33 Виды связывания
    00:11:06 Необходимые зависимости, проект и поддержка АОП
    00:14:39 Аспект (Aspect)
    00:16:00 Точки среза (Pointcut)
    00:49:37 Советы (Advice)
    #java #spring #springframework #aop #aspectj #aspectorientedprogramming
    Мой сайт: alexkosarev.name/
    Паблик в VK: public218833461
    Канал в Telegram: t.me/+TZCuO38vG3oqu_Jq
    Стать доном: donut/shurik.codes
    Донаты в Boosty: boosty.to/akosarev/purchase/1...
    Донаты в Tinkoff: www.tinkoff.ru/cf/4PEOiVCZQuS

Komentáře • 46

  • @wondergalya
    @wondergalya Před 2 hodinami +1

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

  • @user-pq7tk7gd2h
    @user-pq7tk7gd2h Před 6 měsíci +3

    Супер, Тарантино снова снял шедевр)

  • @flysang344
    @flysang344 Před 4 měsíci +3

    Отличное видео, освежил знания по АОП. Помню использовал его в своем пет проекте и настраивал через XML.

  • @gogogo2022
    @gogogo2022 Před rokem +10

    Тарантино вещает 😂🤙

  • @raccoon8230
    @raccoon8230 Před rokem +4

    Спасибо за ролик, было бы крайне полезно разобрать управление транзакциями в Spring

  • @zhennik263
    @zhennik263 Před 5 měsíci +2

    Когда искал гайд по АОР через поиск этого видео мне не выдало. А вот в пекомендациях через неделю - чего нет...

  • @KeibyBigBalls
    @KeibyBigBalls Před 10 měsíci +1

    Очень круто, один из немногих настолько подробных роликов на ютубе по теме АОП

  • @DenisBezrukov-jr1tp
    @DenisBezrukov-jr1tp Před 3 měsíci +1

    Огромное тебе спасибо за такое классное обьяснение и ввод в тему Spring АОП.
    Пожалуйста, продолжай свое дело! У тебя очень хорошо получается.

  • @ism_ak
    @ism_ak Před měsícem +1

    Спасибо за труд!

  • @Ann_Askerova
    @Ann_Askerova Před 11 měsíci +2

    Хочется поставить 10000 лайков) спасибо огромное за ролик, очень интересно!

  • @alexshutov5442
    @alexshutov5442 Před rokem

    Пушка. Спасибо за материал)

  • @Po4kaKita
    @Po4kaKita Před rokem +1

    Спасибо! Максимально приятно слушать на столько детальные объяснения

  • @hackim2554
    @hackim2554 Před 7 měsíci +1

    Лучший по обучению на java!
    Смотрю тебя, для подготовки на первое собеседование

  • @globalist1877
    @globalist1877 Před rokem

    Какой позитив. Браво!!!

  • @krab9512
    @krab9512 Před rokem +1

    Это кайф, спасибо большое!

  • @chesseranapa
    @chesseranapa Před 9 měsíci +1

    Очередное видео, которое посмотрел с большим удовольствием. Краткость сестра таланта (с). Минимальный и достаточный набор для самостоятельного движения. Жаль что не было подобного видео, когда сам погружался в эту тему. И да, под капотом много странных эффектов. Применять нужно аккуратно и с проверкой.

  • @annanagornaia2032
    @annanagornaia2032 Před 9 měsíci +1

    Спасибо, шикарное объяснение👀

  • @melonboom299
    @melonboom299 Před 4 měsíci +1

    Обожаю твои видео!

  • @Admin-qw7ss
    @Admin-qw7ss Před 9 měsíci +1

    Хорошее видео, спасибо!

  • @mikhailyegorov27
    @mikhailyegorov27 Před rokem +1

    Шикарно, Спасибо Саша! AOP кстати используется для кастомизации аллюр отчетов. так что автотестерам тоже полезно)

  • @Mnbvc-oc8wv
    @Mnbvc-oc8wv Před 11 měsíci +1

    Охрененные видео 🔥🔥🔥🔥🔥

  • @sergeng-gd5ev
    @sergeng-gd5ev Před 5 měsíci +1

    Молодец, очень доходчиво разложил!

  • @psergeev77
    @psergeev77 Před 4 měsíci +1

    спасибо!

  • @mtg2844
    @mtg2844 Před rokem +1

    Саша как реклама которая следит за мной, только сегодня на собеседовании плохо ответил про АОП и думал подучить нормально, а тут бац и ролик, значит суждено выучить)

    • @user-gw2xs4zm4r
      @user-gw2xs4zm4r Před rokem

      на какой грейд собесились?

    • @mtg2844
      @mtg2844 Před rokem

      @@user-gw2xs4zm4r на джуна

  • @romanovichihin2429
    @romanovichihin2429 Před 11 měsíci +1

    лайк, коммент, некст!

  • @user-ti7wk4qt6s
    @user-ti7wk4qt6s Před 5 měsíci +1

    Как в случаем с видео про @Transactional тут также освещается очень редкая (в плане обучающих материалов), но популярная на собсесах и в жизни тема. Снова на высоте, полный восторг. Спасибо за проделанную работу! P.S. будет ли видео про batch или про брокеры сообщений? (какие-нибудь интересные кейсы с кафкой/рэбитом)

    • @shurik_codes
      @shurik_codes  Před 5 měsíci

      Про очереди сообщений видео будут, да

  • @gnori
    @gnori Před rokem

    Емае, какой же качественный материал о АОП. Готов поспорить, за маской Саши скрывается Sam Brannen)

  • @kirillchug
    @kirillchug Před rokem +1

    Можно ещё как в дополнение кроме Spring AOP ещё и про AspectJ рассказать по-подробней. Он расширенный ф-л предоставляет за счёт использование внутри либы ASM и использования своего языка, не аннотированный spring стиль.
    К примеру, часто бывает нужно чтобы аннотации триггерились и на методах, которые и когда вызываются внутри другого метода, не смотря на то что они оба публичны (тут проблема проксирования от Spring-а встаёт) или проблема работы с не публичными метода в Spring AOP

    • @shurik_codes
      @shurik_codes  Před rokem +1

      Возможно когда-нибудь расскажу и про AspectJ, но планов и так очень много, а тема AspectJ мне кажется не очень востребованной. Хотя признаю, что AspectJ - невероятно мощный и полезный инструмент.
      >> не аннотированный spring стиль
      А это и не Spring-стиль, скорее даже наоборот - аннотации появились в AspectJ 5 аж в 2003-2004 году)
      >> аннотации триггерились и на методах, которые и когда вызываются внутри другого метода
      Это проблема динамического связывания в целом, так как перехватывает вызовы прокси-объект, о существовании которого целевой объект не знает. Целевой объект обращается к самому себе напрямую, минуя прокси. Чтобы перехватывать внутренние вызовы, нужно нагородить костылей с внедрением ссылки на прокси в целевой объект, либо внедрить контекст Spring и обращаться к "своим" методам через прокси, получаемого из контекста. Либо использовать другие виды связывания.

  • @great_patriarch1459
    @great_patriarch1459 Před rokem

    А при использовании каких ещё аннотаций из часто использованных используется прокси? Кроме Configuration

    • @shurik_codes
      @shurik_codes  Před rokem

      Не понял сути вопроса)

    • @shurik_codes
      @shurik_codes  Před rokem +1

      После уточнения от @enjoyit8499 понял о чём речь. На самом деле в Sprung Framework и его экосистеме много чего основано на АОП и динамическом проксировании. И @Transactional, и @Cachable, и @PreAuthorize/@PostAuthorize и т.д.

  • @user-zz4ld4mx3r
    @user-zz4ld4mx3r Před 3 měsíci +1

    Видео понравилось, а есть ссылка на код из видео?

  • @tusman4ik
    @tusman4ik Před 7 měsíci

    Можно ли ссылочку на ваш гитхаб? Как начинающему разрабу, очень хочется почитать чужой код. Спасибо!

    • @shurik_codes
      @shurik_codes  Před 7 měsíci

      github.com/alex-kosarev но там код красотой не блещет)

    • @tusman4ik
      @tusman4ik Před 7 měsíci

      @@shurik_codes огромное вам спасибо!)

  • @iKorvik
    @iKorvik Před 4 měsíci +1

    Всё-таки лучше не пытаться переводить какие-то названия методов или ещё чего

  • @user-er9yu9xp1r
    @user-er9yu9xp1r Před 2 měsíci

    А можно ли создать Pointcut для того чтобы фильтровать методы в которых есть именно параметры, аннотированные какой-нибудь аннотацией, к примеру @RequestBody?

    • @shurik_codes
      @shurik_codes  Před 2 měsíci

      Конечно можно

    • @user-er9yu9xp1r
      @user-er9yu9xp1r Před 2 měsíci

      @@shurik_codes 2 раза пересмотрел видео и не нашел ответа, только указание параметров типы которых отмечены аннотацией или просто здесь это не рассматривалось?