Spring Framework. Урок 10: Аннотация @Autowired. Внедрение зависимостей (Dependency Injection).

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

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

  • @alishevN
    @alishevN  5 лет назад +12

    ПОЛНЫЙ КУРС ПО SPRING: swiftbook.org/courses/438
    Плейлист этого курса: ruclips.net/p/PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ
    Telegram: t.me/alishev_g

    • @nknk-jj7pk
      @nknk-jj7pk 4 года назад

      А почему в некоторых видео вы говорите, что спрингу нужен конструктор без параметров(и действительно приложение не запускается). А здесь не пишите конструктор без параметров(и все работает). От чего это зависит? Я правильно понял, что если объект без объектов внутри, то нужен конструктор без параметров. Если объект с объектом внутри, то конструктор без параметров не нужен?

  • @serinnyprogrammistjohn7818
    @serinnyprogrammistjohn7818 5 лет назад +117

    Твои видосы как зп, редко но радуют!

    • @Beatsmusic777
      @Beatsmusic777 4 года назад +18

      В русскоязычном сегменте очень не хватает таких видео. Но вообще бомбой было бы взять один хоть даже мини проект и сделать его по всем правилам от 0 до продакшена.

    • @Дмитрий-ж5ю6х
      @Дмитрий-ж5ю6х 4 года назад +3

      @@Beatsmusic777 letsCode, имеет что-то подобное

    • @Beatsmusic777
      @Beatsmusic777 4 года назад +3

      @@Дмитрий-ж5ю6х Смотрел уже у него тоже много полезного вот только большинство лекторов дают обзорно а было бы круто если взяли бы один небольшой но полноценный проект и допилилибы его до конца.

    • @grandmacarpet208
      @grandmacarpet208 3 года назад +1

      Сука. :'( как ножом по сердцу

  • @ОльховийМихайло
    @ОльховийМихайло 5 лет назад +13

    Голос приятный, разобираешь всё по пунктам, затрагиваешь тонкости, всё объясняеться на примерах - смотреть одно удовольствие!

  • @СеменШейкин-в5л
    @СеменШейкин-в5л 4 года назад +6

    Вот сидишь такой, начинаешь изучать Spring, все сложно и непонятно и тут появляется джин в лице автора и все оказывается легко и просто))

  • @muhamedoshan5246
    @muhamedoshan5246 5 лет назад +30

    Очень интересная тема по Spring🔥🔥, и урок самый понятный, доступными словами. Можно еще урок по Spring AOP😭.

  • @coopermakenz5800
    @coopermakenz5800 5 лет назад +18

    Огромное спасибо! Разложили всё по полкам! Продолжайте пожалуйста, у Вас хорошо получается! Не бросайте, очень интересно!

  • @for_whom_the_bell_tolls
    @for_whom_the_bell_tolls 5 лет назад +3

    Какой же автор все таки красавчик, так четко все по полочкам по Спринг Кору. Для меня этот цикл лекций прояснил больше чем 3 и 5 издание Spring in Action вместе взятые.

  • @yuriyleshchenko9650
    @yuriyleshchenko9650 5 лет назад +79

    Внедрение через поле является плохой практикой, т.к. потом столкнетесь с проблемой во время написания тестов. Лучше использовать внедрение через конструктор, если это возможно, иначе - через setter. А так хорошее видео, лайк ;)

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

      Об этом даже говорит IDEA но кто смотрит на это :) Да и вообще @Autowired вовсе не обязателен. Еще момент про сканирование очень плохо раскрыт в реальном проекте лучше указывать как можно точнее пакеты которые нужно сканировать, это уменьшит время сканирования и поможет избегать конфликты.

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

      Maksim Muruev
      как это @Autowired не обязателен?????

    • @irynalysechko2462
      @irynalysechko2462 4 года назад +43

      @@manOfPlanetEarth Начиная со Spring версии 4.3, если в вашем классе есть только один конструктор, можно не ставить аннотацию @Autowired на него и Spring будет по умолчанию внедрять зависимости через этот конструктор.
      Тем не менее я предпочитаю всегда ставить аннотацию @Autowired, так как это делает код более читабельным и понятным (некоторые люди могут не знать об этой "фишке", а если стоит аннотация @Autowired то все сразу понятно).

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

      @@irynalysechko2462
      Ира, спасибо за пояснение!

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

      @@irynalysechko2462
      у тебя видео про шпагат на канале. получилось сесть?
      интересно, потому что сам потягиваюсь. но не для шпагата, а поскромней.

  • @Saprykevich
    @Saprykevich 5 лет назад +3

    Чисто на удачу открыл твой канал, и тут видео 16 минут назад!!! Спасибо, как всегда интересно и информативно!

  • @Julia_Funny
    @Julia_Funny 5 лет назад +9

    пожалуйста больше материала!!!! Вы очень крут!!!

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

    Объясняешь очень хорошо. Даже ребенок поймет. Спасибо

  • @TarikBat
    @TarikBat Год назад

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

  • @NIKONOV88
    @NIKONOV88 5 лет назад +3

    Как раз по работе столкнулся со Spring. Из того что нашел - это самое лучшие объяснение. Спасибо. Жду продолжение. PS я автоматизатор.

  • @ИванСапронов-з8ь
    @ИванСапронов-з8ь 4 года назад +2

    Спасибо Вам огромное за ваш Труд! Очень содержательные лекции. Пожалуй, лучшее, что есть на русском про Spring!

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

    Наиль, тебе спасибо передал Эмиль!

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

    благодаря вам изучение spring идет куда быстрее) от души

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

    Очень часто смотрю Ваши уроки, начинал с самого начала о джаве, сейчас уже устраиваюсь на работу. Большое Вам спасибо, всё очень круто, успехов в работе и крепкого здоровья!

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

      Спасибо вам!

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

      Ivaar , Да :)

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

      привет. устроился? рассказываай все как есть)
      что было сложно? какая обстановка на рынке? или еще не устроился? не стесняйся.

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

      Привет, да, устроился, на рынке сейчас тяжело. Честно, сложного почти ничего не было, на джуна много не спрашивают, чего не знаешь - доучишь на испыталке, так что нужно пробовать. Больше подучить теорию перед собесом и не волноваться, говорить медленно и уверенно, особенно про полиморфизм и конечно примеры из жизни :)

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

      @@romanihnatov5629
      спасибо за ответ)
      ты город не указал. москва/питер или др?
      просто в первых двух всегда побольше вакансий для джунов. а в остальных городах очень мало вакансий для джунов всегда.
      меня москва/питер интересуют)

  • @ВалентинСмородинов-у5т

    Cамые лучшие уроки!

  • @Mike19910711
    @Mike19910711 5 лет назад +1

    Очень толковые уроки, много практики. Спасибо.

  • @gera.v.v
    @gera.v.v 4 года назад +1

    у нас в Минске на курсах it -академии по java включают видео Алишева - вот это о многом говорит. Так круто подавать мало кто может!!!

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

    Спасибо огромнейшее, слайды очень помогают, я к тому-же их скриню))

  • @uzbekistantraders7704
    @uzbekistantraders7704 2 года назад +1

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

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

    Спасибо за крутые видео курсы !!!))

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

    Спасибо за такой интересный урок!

  • @ЗыйнатКурбанбаева-ш1х

    Благодарю вам огромное спасибо.

  • @РоманЧереватенко-т3з

    Отличные уроки!

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

    Алишев я люблю тебя

  • @ar9r
    @ar9r 5 лет назад +2

    Красава! Так ждал это видео!

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

    Спасибо большое, супер.

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

    Прям на ура зашел. Спс

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

    Spring Framework. Урок 10: Аннотация @Autowired. Внедрение зависимостей (Dependency Injection).

  • @artemvoronov4751
    @artemvoronov4751 5 лет назад

    Классные видеоуроки, спасибо!

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

    Превосходный курс

  • @user-s5f
    @user-s5f 5 лет назад

    Спасибо за уроки!

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

    5 лет рботал Unity разработчиком, теперь вот решил переучиться на Java Enterprise и пытаюсь разобраться со Spring, надеюсь через несколько месяцев у меня все получится))

    • @DmitriyTs
      @DmitriyTs Год назад

      ну как успехи?

    • @vazhmax2632
      @vazhmax2632 5 месяцев назад

      ну как успехи?

    • @AlexPlayer1000
      @AlexPlayer1000 5 месяцев назад

      @@vazhmax2632 ушел в 1с

  • @2a.kargin58
    @2a.kargin58 5 лет назад +1

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

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

    Через Autowired самый простой и понятный способ

  • @iryna6389
    @iryna6389 5 лет назад +2

    Наиль!!! Огромное спасибо!!! По твоим видео я начала учить джаву! А на этой неделе будет мой первый рабочий день в качестве джуна))) Кстати вопрос про аннотацию Autowired был на собесе!!! Спасибо огромное!!! Только не бросай канал, пожалуйста, он нам очень нужен!!!!

    • @alishevN
      @alishevN  5 лет назад

      Уау! Круто) поздравляю 🥳

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

      Ира, привет! Расскажи, пож-та, как продвигаются твои дела на работе? Москва же? На сколько собеседований пришлось сходить, каков спрос на джунов? Как проходили собесы и тд... мне предстоит все это.
      какого уровня были твои знания во время собеседований? только видео Наиля? или еще читала Хорстманна? Шилдта? Что спрашивали по спрингу, кибернейту, sql, maven, git, tomcat?

  • @ms_shifu7047
    @ms_shifu7047 5 лет назад +6

    Во, уже жара начинается, жалко еще норм качество не подъехало.

  • @leshiyboroda5369
    @leshiyboroda5369 5 лет назад

    хорошая подача материала...

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

    thankful

  • @pavelsamsonenka3155
    @pavelsamsonenka3155 5 лет назад

    Супер!

  • @КонстантинЪЪЪ
    @КонстантинЪЪЪ 5 лет назад +1

    лайк, посмотрю позже )

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

    Спасибо

  • @Dmitry-Trofimov
    @Dmitry-Trofimov 4 года назад +1

    Копировать строчку можно просто нажатием Ctrl + d в Идее

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

    Спасибо!

  • @frolomaskor
    @frolomaskor Год назад +1

    2:11 Если не находится ни одного бина - ошибка.
    Если подходят несколько бинов - *Фатальная ошибка*

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

    круто!

  • @kengerfil
    @kengerfil 3 года назад +3

    Почему аннотация "@Component" называется именно так, а не "@Bean"?

  • @e.s.krivonogov
    @e.s.krivonogov 2 года назад

    Спасибо. Доната не жаль)

  • @VarnavskyIvan
    @VarnavskyIvan 3 года назад +1

    ...не знаю. Вот сижу смотрю про этот Spring и не понимаю всё равно нафига оно надо. Может дальше будет понятнее, но пока так. Т.е. мы делаем то тоже самое но в других местах, другими способами и менее очевидно и прозрачно, с помощью "магии", подключения лишних библиотек и прочего, но при этом я вообще не вижу в чём упрощение разработки, всё так же приходится прописывать, только иначе. Причем это иначе не сказать что проще, скорее наоборот. Может я тупой, а может как обычно "пользуемся потому что модно" как было уже не раз. История идет по кругу как говорится, вон сколько метаний вокруг работы с БД, JDBC, потом JDO который действительно удобный в некоторых реализациях, потом про него дружно забыли, потом ничёсе JPA! Потом опять про JDBC и что нам делать... А-а-а как бы есть уже инструменты. Нет, давайте заново изобретать JPA, а потом опять же заново изобретать JDO. В итоге куча разных реализаций одного и того же. Не знаю, странная фигня если честно, куча новых названий для одно и того же, куча механизмов для одного и того же. Почему аннотации Component нужно было делать если из этого Bean делается, не проще ли сразу назвать понятно. Почему названия сетеров преобразуются по одному шаблону, а остальное по другому? Зачем так делать? Это же криво и неудобно.

  • @xackuuu
    @xackuuu 4 года назад +5

    Почему без анотации @Autowired все равно код работал?

    • @СашаНемо-з2ы
      @СашаНемо-з2ы 3 года назад

      В XML всё было сконфигурировано

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

      @@СашаНемо-з2ы Понял) Спасибо)

  • @alekseysidorenko1855
    @alekseysidorenko1855 5 лет назад +4

    Вопрос по поводу @Autowired, в частности момента на 15:35. Я по невнимательности не поставил аннотацию на конструктор MusicPlayer, но тем не менее все работает и без нее. Почему так?

    • @alishevN
      @alishevN  5 лет назад +12

      Начиная со Spring версии 4.3, если в вашем классе есть только один конструктор, можно не ставить аннотацию @Autowired на него и Spring будет по умолчанию внедрять зависимости через этот конструктор.
      Тем не менее я предпочитаю всегда ставить аннотацию @Autowired, так как это делает код более читабельным и понятным (некоторые люди могут не знать об этой "фишке", а если стоит аннотация @Autowired то все сразу понятно).

    • @alekseysidorenko1855
      @alekseysidorenko1855 5 лет назад +1

      @@alishevN Да, соглашусь, фича сомнительная. Спасибо большое за пояснение.

  • @Андрей-Зубков
    @Андрей-Зубков 4 года назад +1

    Спасибо, супер доступное объяснение, один момент только не совсем для меня понятен, для чего в конструкторе вы передаёте айдишник (this.id = 1) и почему внедряется не спрингом? Это на случай если будет несколько компьютеров? Тогда в каждом нужно будет самим передавать индивидуальное значение id?

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

    Читал, что Спринг сам уже не рекомендует ставить аннотацию над переменными, а использовать ее над сеттерами. Ещё, когда ставим над конструктором, то мы добавляем лишнюю зависимость классу, а она не всегда бывает нужна!

  • @konstantinz5058
    @konstantinz5058 5 лет назад +3

    Спасибо за столь подробные уроки! У меня вопрос: на 13:05 - спринг создает бин мьюзик плеера и внедряет зависимость через сеттер. Однако, у мьюзик плеера в конструкторе - обязательна передача объекта мьюзик, и пустого конструктора нет. Я ожидал ошибку, мол нет конструктора по-умолчанию, ан-нет. Можете прокомментировать эту ситуацию? Спасибо :)

    • @Bezpalov2
      @Bezpalov2 5 лет назад +1

      Похоже, что спринг видя надобность в конструкторе бина определенного типа ищет этот бин у себя в контексте даже при отсутствии аннотации @Autowired над конструктором. Если в этом примере убрать @Autowired с сетттера, то все также будет прекрасно работать как и с ним, и переменная music не будет null. Что же до дефолтного конструктора, то при его наличии в этом примере отрабатывал бы он

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

      Евгений Зозуля
      ✋🏼 извиняюсь за прошлый пост(
      да, при наличии дефолтного конструктора в данном примере отрабатывал бы этот дефолтный конструктор, а зависимость внедрялась бы чз сеттер, помеченный @Autowired.

  • @ИгорьМешалкин-ж7ф
    @ИгорьМешалкин-ж7ф 2 года назад

    Объясните пожалуйста такой вопрос.
    Когда мы внедряли зависимость через сеттер используя дедовский способ (xml) нам приходилось создавать пустой конструктор, или удалять свой для того что бы спринг мог создать объект с пустым полем, что бы потом у этого объекта вызвать сеттер.
    А здесь конструктор живёт как ни в чём не бывало. Мы знаем что при создании любого 1-го конструктора JVM убивает конструктор по умолчанию (поэтому мы и создавали пустой, как вариант).
    Внимание вопрос!
    Как спринг в этом случае создаёт объект у которого потом вызывает сеттер?
    Спасибо.

  • @sigma3131
    @sigma3131 2 года назад +1

    Заметил, что когда делаю внедрение зависимостей через конструктор без @Autowired, то тоже все работает. Значит здесь Спринг сам понимает какой бин куда внедрять?

  • @isanyoc
    @isanyoc Год назад

    Autowired по всей видимости не обязательно использовать над конструктором. Спринг сам добавляет эту зависимость без аннотации

  • @ksisaqev
    @ksisaqev 3 года назад +1

    Привет, спасибо за уроки. Подскажи пожалуйста , почему в последнем варианте с классом Computer не падает программа даже если удалить @Autowired над конструктором MusicPlayer? Заранее спасибо

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

      начиная со Spring 4.0 аннотацию @Autowired можно не ставить на конструктор, если он единственный в классе.

  • @АндрейСмирнов-в9и
    @АндрейСмирнов-в9и 5 лет назад +3

    Хорошие видео, очень доступно и понятно. Большое спасибо автору. Один только вопрос, почему вы не пользуетесь горячими клавишами в IDEA? (Ctrl + D - копирование строки, Shift + f6 - изменение названий)

    • @yevhenb2312
      @yevhenb2312 4 года назад +3

      Думаю ответ на столько прост, что о нем никто не задумывался - когда делается учебное видео, то должно быть все визуализировано. К примеру запускать можно тоже через shift+F10, но для наглядности делает это мышкой.

  • @pascha9141
    @pascha9141 4 месяца назад

    по поводу внедрения зависимости напрямую через поле. IDEA пишет мне: Field injection is not recommended. рекомендую вам загуглить эту ошибку. вы сможете понять, что принятие решения о том, какое внедрение зависимостей использовать, зависит не только от структуры проекта.

    • @Wyclot
      @Wyclot 3 месяца назад

      у тебя idea взломанная или купил подписку

  • @lilawp319
    @lilawp319 Год назад

    Возникает проблема,что Spring не может найти bean с названием rockMusic , хотя кажется все также как у вас

  • @tatiana-mih
    @tatiana-mih 4 года назад

    Наиль, мои знакомые интересовались, есть ли хорошие курсы по Java на английском на ютубе. Я им ответила, что лучшее, что нашла ваши курсы. Рассматриваете ли вы возможность хотя бы поместить субтитры на английском в своих видео-уроках?

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

      подумаю, спасибо)

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

    На неделе попался канал и ваши уроки уже стали для меня как наркотик. Очень информативные и мотивирующие, спасибо огромное за них!
    С 9:00 вы ссылаетесь на уроки по рефлексии на своем канале, но ни в одном плейлисте на канале, ни с помощью поиска по ключевому слову найти не удалось. Где найти эти уроки по рефлексии?

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

      Уроки по рефлексии находятся в моем курсе "Продвинутая Java".
      Ссылка: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776

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

    Курс классный! Но пока вся эта возня с зависимостями выглядит как танцы с бубнами над вещами, которые можно было бы легко сделать обычными конструкторами. Посмотри что будет дальше

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

    Может знаете где найти какие нибудь не сложные проекты для новичков, которые только что освоили ООП? Проекты где можно было бы работать в команде

  • @vladigasparo
    @vladigasparo Год назад

    Здравствуйте, спасибо большое за видео, очень интересно смотреть Ваши уроки. Хотел вот что спросить: если я удаляю аннотацию @Autowired у конструктора класса Computer, у меня продолжает всё работать. Выходит, что данную аннотацию можно и не прописывать?

  • @Shailesh-et1by
    @Shailesh-et1by 2 года назад +1

    +

  • @andriymr.x8175
    @andriymr.x8175 5 лет назад

    Клас!

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

    на счет Autowired - если ее не указывать, то всё будет работать точно так же (если два бина и указать Music music в конструкторе МузыкальногоПлеера, то компилятор выдаст ошибку: найдено два компонента, какой жеж выбрать?)

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

    Обнаружил интересную особенность. Если конструктор MusicPlayer не пометить как @Autowired и создать экземпляр MusicPlayer через getBean, то в конструктор все же автоматически передается подходящий бин. Это такая скрытая особенность?

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

      начиная со Spring 4.0 аннотацию @Autowired можно не ставить на конструктор, если он единственный в классе.

  • @РоманГригорьев-с8й
    @РоманГригорьев-с8й 4 года назад

    Супер. А подскажите сколько стоит платный курс и есть ли он вообще по Spring?

  • @Mat1ga
    @Mat1ga 5 лет назад

    Планируешь ли платный урок по спрингу? Хотелось бы посмотреть, хорошо объясняешь

    • @alishevN
      @alishevN  5 лет назад +1

      Пока выпускаю здесь.

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

    Хм.... в данном уроке всё работает и без @Autowired. Или в новом Спринге это стало не столь обязательным, или я чего-то не понял.
    Т.е. создаём все бини через компоненты и Спринг без аннотации прекрасно понимает какой бин надо подставить в конструктор.

  • @БакытБазарбаев-в4ь
    @БакытБазарбаев-в4ь 2 года назад

    почему у меня не работает System.out.println () вне метода

  • @МихаилЕлуферьев-и6е

    Привет из 2023 года, итак, если до использования Spring в учебных проектах в обычной JAVA, создавали счетчик id через static переменную, то уверенно могу сказать, что про создании бинов через @Autowired такой счетчик работать не будет. Решение пока не нашёл, как найду - напишу

  • @c.d.e5852
    @c.d.e5852 Год назад

    необходима ли аннотация @Autowired над конструктором? если ее не ставить все и так прекрасно работает. А вот сеттер без этой аннотации не срабатывает. не понятно

  • @1DiloN1
    @1DiloN1 5 лет назад +2

    Видео крутое!
    Один только вопрос: при внедрении с помощью @Autowired полей всплывает рекомендация: "Field injection is not recommended" - и ниже указана непосредственно рекомендация Spring Team: "Always use constructor based dependency injection in your beans."
    Что скажете по этому поводу?

    • @alishevN
      @alishevN  5 лет назад

      Да, идея считает, что лучше внедрять через конструкторы.

    • @alishevN
      @alishevN  5 лет назад +1

      Так что слова из урока о том, что все 3 способа абсолютно равнозначны не совсем правильные. Лучше все-таки использовать внедрение с помощью конструктора.

    • @1DiloN1
      @1DiloN1 5 лет назад

      @@alishevN Спасибо за ответ!

    • @1DiloN1
      @1DiloN1 5 лет назад

      @@alishevN Но еще есть общий коцептуальный вопрос: ведь если убрать @Autowired изо всех классов, программа все равно будет работать. Как тогда объяснить необходимость использования этой аннотации в Spring? Возможно, вопрос глупый, но у меня возник.

    • @alishevN
      @alishevN  5 лет назад

      Я предпочитаю всегда ставить аннотацию @Autowired, так как это делает код более читабельным и понятным. Некоторые люди не ставят.

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

    а как быть если у класса, например, RockMusic будет конструктор, который принимает как параметр String songName? можно ли туда сразу как-то запихнуть значение?

  • @БогдановГеоргий-г8л

    Теперь ждём Python!

  • @ЕкатеринаСергеевнаШевчук

    Вы очень хорошо рассказываете. Было бы круто, если бы у вас было бы видео про spring+hibernate

  • @АлександрМан-в6ъ
    @АлександрМан-в6ъ 4 года назад

    не совсем понятно использование @Autowired в public MusicPlayer(ClassicalMusic classicalMusic, RockMusic rockMusic) , тут же и так все явно указано

  • @Креветковыетехнологии

    Вы упомянули что @Autowired приватного поля копает рефлексию, позже вы утверждаете что любой @Autowired одинаков в функциональности, так ли это?

    • @Креветковыетехнологии
      @Креветковыетехнологии 3 года назад

      если разница лишь в setAccessible, то прошу прощения, но ведь все равно разная реализация получается

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

    А что если конструкторов два, один с @Awtowired другой без?

  • @andrewblack1684
    @andrewblack1684 5 лет назад

    А идеа пишет предупреждение, что внедрение зависимостей через поля не рекомендуется. Почему так?

    • @alishevN
      @alishevN  5 лет назад

      Да, идея считает, что лучше внедрять через конструкторы.

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

    19:00 - почему не нужно вызывать метод toString у объекта computer в мейне?

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 года назад

      это специальный метод
      его джава сама вызывает чтобы получить представление объекта

  • @АлексейАноним-м8в
    @АлексейАноним-м8в 4 года назад

    Не показал, как передавать значения из стороннего файла при создании бинов. Можно ли это сделать через аннотации?

  • @ИванКорнилов-я3с
    @ИванКорнилов-я3с 3 года назад

    Если у вас эта ошибка Unsupported class file major version 59

  • @XFNeoful
    @XFNeoful 5 лет назад

    Не понял 2 момента:
    Как что спринг передает в в конструктор(если на нем не стоит @Autowired), если у нас нет пустого конструктора?
    И если вообще нет @Autowired,то он все равно создает бин и добавляет зависимость

    • @igorvasylevskyi3629
      @igorvasylevskyi3629 5 лет назад +1

      С какой-то версии Спринг в каких-то случаях может работать и без @Autowired

  • @bezsovesty6601
    @bezsovesty6601 5 лет назад +1

    У меня спринг внедряет зависимости даже без аннотации Autowired, это нормально?

    • @bezsovesty6601
      @bezsovesty6601 5 лет назад

      Попробовал удалить аннотацию Autowired, чтобы посмотреть, какая ошибка будет. Но никакой ошибки не было, idea скушала и такой код.

    • @alishevN
      @alishevN  5 лет назад +5

      Начиная со Spring версии 4.3, если в вашем классе есть только один конструктор, можно не ставить аннотацию @Autowired на него и Spring будет по умолчанию внедрять зависимости через этот конструктор.
      Тем не менее я предпочитаю всегда ставить аннотацию @Autowired, так как это делает код более читабельным и понятным (некоторые люди могут не знать об этой "фишке", а если стоит аннотация @Autowired то все сразу понятно).

    • @bezsovesty6601
      @bezsovesty6601 5 лет назад

      @@alishevN Понял, большое спасибо за объяснение)

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

    Не очень понял на 9:15, смысл ставить аннотацию @Autowired для конструктора ClassicalMusic? если и без нее класс TestSpring запустится и вернет валидные данные в консоль. Погуглил и оказывается для констукторов аннотация @Autowired - не обязательна.

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

      херня какая-то. а для чего она? только для сеттеров? раздражает отсутствие четких правил. что запоминать-то?????

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

    Если мне надо использовать несколько экземпляров класса, как мне сделать это с помощью аннотаций?

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

      @Scope("prototype") дополнительно поставить выше или ниже @Component. Что интересно, когда кликаешь с зажатым ctrl на @Scope, можно почитать описание и там ни где не указаны какие вариант можно вписывать.

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

    мне одному кажется, что создание полей classicmusic и rockmusic и инициализация их в конструкторе какой-то костыль????
    разве нет способа подключить 2 бина к этому конструктору через интрефейс????

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

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

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

      @@vladimirgaydamakin7155 можно в качестве аргумента в конструктор передать лист, тогда кол-во аргументов станет любым - хоть 1 или больше.
      @Autowired
      public MusicPlayer(List musicList) {
      this.musicList = musicList;
      }
      UPD:
      либо обойтись вообще без конструктора подрубив аннотацию сразу к полю
      @Autowired
      private List musicList;

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

    Постоянно боюсь, что полоска видео дойдёт до конца и видео прервётся

  • @АйбекЕрмекбаев-ч2и
    @АйбекЕрмекбаев-ч2и 3 года назад

    У меня программа и без аннотации @Autowired запускается на отлично. Или эта аннотация в новых версии джава не актуальна ?

    • @alishevN
      @alishevN  3 года назад +2

      эту аннотацию можно опускать и Спринг по умолчанию внедрит зависимость, но делать этого не стоит

    • @АйбекЕрмекбаев-ч2и
      @АйбекЕрмекбаев-ч2и 3 года назад

      @@alishevN Спасибо

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

    Актуально еще java в 2020? Ведь есть python, C#

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

      Самые популярные языки января 2020, топ-3 (TIOBE Index):
      1) Java
      2) C
      3) Python

  • @Дмитрий-ю9к3г
    @Дмитрий-ю9к3г 4 года назад

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

  • @Good_nick_name
    @Good_nick_name 5 лет назад

    можно массив сделать и все

  • @ms_shifu7047
    @ms_shifu7047 5 лет назад

    Вопрос, про @Autowired: насколько законно, если я буду его использовать в боевых проектах, ведь щас принято через конструктор подключать зависимости:
    private final DataSource dataSource;
    public SomeClass(DataSource dataSource) {
    this.dataSource = dataSource;
    }?

    • @alishevN
      @alishevN  5 лет назад

      Лучше делать так, как уже принято в проекте.
      Если там уже используют внедрение через конструктор, то лучше придерживаться этого стиля.

    • @Bonik-cj2zu
      @Bonik-cj2zu 5 лет назад +1

      короткий ответ: @Autowired нужно знать, но стараться не использовать, а делать все "ручками" через конструктор (если лень писАть много строк - lombok в помощь)

    • @ms_shifu7047
      @ms_shifu7047 5 лет назад

      @@Bonik-cj2zu thank's, много слышал про него, но еще не пробовал.

    • @Bonik-cj2zu
      @Bonik-cj2zu 5 лет назад

      @@ms_shifu7047 lombok - штука прикольная, но не стоит злоупотреблять. Имхо, на ранней стадии изучения лучше без него, это так - "сахар" в коде. Чем опасен @Autowared? Тем, что спринг-контейнер без разбора возьмет первый попавшийся, а не тот, на который Вы рассчитывали бин. Пример? Spring Boot и, собственно, Spring будут материться какую зависимость внедрять. У Вас даже приложение не соберется при таком подходе. Имхо, @Autowired - зло, которое потом (при большом проекте) фиг разберешь

    • @taras7630
      @taras7630 5 лет назад

      @@Bonik-cj2zu что вы имеете ввиду под "Чем опасен @Autowared? Тем, что спринг-контейнер без разбора возьмет первый попавшийся, а не тот, на который Вы рассчитывали бин." ? Знакомы с аннотацией @Qualifier? Почитайте, будет полезно.