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

  Рет қаралды 127,514

alishev

alishev

Күн бұрын

ПОЛНЫЙ КУРС ПО SPRING (Hibernate, REST, Boot, Security): swiftbook.org/...
Продвинутая Java: swiftbook.org/...
Мои уроки по Java EE - • Java EE для начинающих
Репозиторий прошлого урока (Стартовый проект) - github.com/Nei...
Репозиторий урока - github.com/Nei...
Реклама и сотрудничество: alishev.neil@gmail.com

Пікірлер: 197
@alishevN
@alishevN 4 жыл бұрын
ПОЛНЫЙ КУРС ПО SPRING: swiftbook.org/courses/438 Плейлист этого курса: kzbin.info/aero/PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ Telegram: t.me/alishev_g
@nknk-jj7pk
@nknk-jj7pk 4 жыл бұрын
А почему в некоторых видео вы говорите, что спрингу нужен конструктор без параметров(и действительно приложение не запускается). А здесь не пишите конструктор без параметров(и все работает). От чего это зависит? Я правильно понял, что если объект без объектов внутри, то нужен конструктор без параметров. Если объект с объектом внутри, то конструктор без параметров не нужен?
@serinnyprogrammistjohn7818
@serinnyprogrammistjohn7818 5 жыл бұрын
Твои видосы как зп, редко но радуют!
@bitsmusics
@bitsmusics 4 жыл бұрын
В русскоязычном сегменте очень не хватает таких видео. Но вообще бомбой было бы взять один хоть даже мини проект и сделать его по всем правилам от 0 до продакшена.
@Дмитрий-ж5ю6х
@Дмитрий-ж5ю6х 4 жыл бұрын
@@bitsmusics letsCode, имеет что-то подобное
@bitsmusics
@bitsmusics 4 жыл бұрын
@@Дмитрий-ж5ю6х Смотрел уже у него тоже много полезного вот только большинство лекторов дают обзорно а было бы круто если взяли бы один небольшой но полноценный проект и допилилибы его до конца.
@grandmacarpet208
@grandmacarpet208 3 жыл бұрын
Сука. :'( как ножом по сердцу
@СеменШейкин-в5л
@СеменШейкин-в5л 3 жыл бұрын
Вот сидишь такой, начинаешь изучать Spring, все сложно и непонятно и тут появляется джин в лице автора и все оказывается легко и просто))
@yuriyleshchenko9650
@yuriyleshchenko9650 5 жыл бұрын
Внедрение через поле является плохой практикой, т.к. потом столкнетесь с проблемой во время написания тестов. Лучше использовать внедрение через конструктор, если это возможно, иначе - через setter. А так хорошее видео, лайк ;)
@maksimmuruev423
@maksimmuruev423 4 жыл бұрын
Об этом даже говорит IDEA но кто смотрит на это :) Да и вообще @Autowired вовсе не обязателен. Еще момент про сканирование очень плохо раскрыт в реальном проекте лучше указывать как можно точнее пакеты которые нужно сканировать, это уменьшит время сканирования и поможет избегать конфликты.
@manOfPlanetEarth
@manOfPlanetEarth 4 жыл бұрын
Maksim Muruev как это @Autowired не обязателен?????
@irynalysechko2462
@irynalysechko2462 3 жыл бұрын
@@manOfPlanetEarth Начиная со Spring версии 4.3, если в вашем классе есть только один конструктор, можно не ставить аннотацию @Autowired на него и Spring будет по умолчанию внедрять зависимости через этот конструктор. Тем не менее я предпочитаю всегда ставить аннотацию @Autowired, так как это делает код более читабельным и понятным (некоторые люди могут не знать об этой "фишке", а если стоит аннотация @Autowired то все сразу понятно).
@manOfPlanetEarth
@manOfPlanetEarth 3 жыл бұрын
@@irynalysechko2462 Ира, спасибо за пояснение!
@manOfPlanetEarth
@manOfPlanetEarth 3 жыл бұрын
@@irynalysechko2462 у тебя видео про шпагат на канале. получилось сесть? интересно, потому что сам потягиваюсь. но не для шпагата, а поскромней.
@coopermakenz5800
@coopermakenz5800 5 жыл бұрын
Огромное спасибо! Разложили всё по полкам! Продолжайте пожалуйста, у Вас хорошо получается! Не бросайте, очень интересно!
@Julia_Funny
@Julia_Funny 5 жыл бұрын
пожалуйста больше материала!!!! Вы очень крут!!!
@for_whom_the_bell_tolls
@for_whom_the_bell_tolls 4 жыл бұрын
Какой же автор все таки красавчик, так четко все по полочкам по Спринг Кору. Для меня этот цикл лекций прояснил больше чем 3 и 5 издание Spring in Action вместе взятые.
@blackview2404
@blackview2404 3 жыл бұрын
Объясняешь очень хорошо. Даже ребенок поймет. Спасибо
@TarikBat
@TarikBat Жыл бұрын
Алишев, спасибо за уроки! Когда нахожу твой урок по интересующей меня теме, точно уверен, что все пойму. Очень доходчиво объясняешь!!!
@Saprykevich
@Saprykevich 5 жыл бұрын
Чисто на удачу открыл твой канал, и тут видео 16 минут назад!!! Спасибо, как всегда интересно и информативно!
@ИванСапронов-з8ь
@ИванСапронов-з8ь 3 жыл бұрын
Спасибо Вам огромное за ваш Труд! Очень содержательные лекции. Пожалуй, лучшее, что есть на русском про Spring!
@dogma7897
@dogma7897 2 жыл бұрын
Наиль, тебе спасибо передал Эмиль!
@NIKONOV88
@NIKONOV88 5 жыл бұрын
Как раз по работе столкнулся со Spring. Из того что нашел - это самое лучшие объяснение. Спасибо. Жду продолжение. PS я автоматизатор.
@gera.v.v
@gera.v.v 3 жыл бұрын
у нас в Минске на курсах it -академии по java включают видео Алишева - вот это о многом говорит. Так круто подавать мало кто может!!!
@uzbekistantraders7704
@uzbekistantraders7704 2 жыл бұрын
Огромное спасибо!
@Mike19910711
@Mike19910711 5 жыл бұрын
Очень толковые уроки, много практики. Спасибо.
@EM1LJAN_
@EM1LJAN_ 2 жыл бұрын
благодаря вам изучение spring идет куда быстрее) от души
@ВалентинСмородинов-у5т
@ВалентинСмородинов-у5т 3 жыл бұрын
Cамые лучшие уроки!
@iryna6389
@iryna6389 5 жыл бұрын
Наиль!!! Огромное спасибо!!! По твоим видео я начала учить джаву! А на этой неделе будет мой первый рабочий день в качестве джуна))) Кстати вопрос про аннотацию Autowired был на собесе!!! Спасибо огромное!!! Только не бросай канал, пожалуйста, он нам очень нужен!!!!
@alishevN
@alishevN 5 жыл бұрын
Уау! Круто) поздравляю 🥳
@manOfPlanetEarth
@manOfPlanetEarth 4 жыл бұрын
Ира, привет! Расскажи, пож-та, как продвигаются твои дела на работе? Москва же? На сколько собеседований пришлось сходить, каков спрос на джунов? Как проходили собесы и тд... мне предстоит все это. какого уровня были твои знания во время собеседований? только видео Наиля? или еще читала Хорстманна? Шилдта? Что спрашивали по спрингу, кибернейту, sql, maven, git, tomcat?
@rollingdice
@rollingdice 2 жыл бұрын
Алишев я люблю тебя
@Andrzej3935
@Andrzej3935 3 жыл бұрын
Спасибо огромнейшее, слайды очень помогают, я к тому-же их скриню))
@bogdangaiduk5752
@bogdangaiduk5752 4 жыл бұрын
Спасибо за крутые видео курсы !!!))
@uk_lumi
@uk_lumi 3 жыл бұрын
Спасибо за такой интересный урок!
@ЗыйнатКурбанбаева-ш1х
@ЗыйнатКурбанбаева-ш1х 2 жыл бұрын
Благодарю вам огромное спасибо.
@РоманЧереватенко-т3з
@РоманЧереватенко-т3з 3 жыл бұрын
Отличные уроки!
@nikiniki933
@nikiniki933 4 жыл бұрын
Спасибо большое, супер.
@artemvoronov4751
@artemvoronov4751 4 жыл бұрын
Классные видеоуроки, спасибо!
@chokkitv379
@chokkitv379 2 жыл бұрын
круто!
@ruzoompartygmail4273
@ruzoompartygmail4273 Жыл бұрын
Превосходная подача материала! Огромное спасибо за контент по Spring!
@AlexPlayer1000
@AlexPlayer1000 2 жыл бұрын
5 лет рботал Unity разработчиком, теперь вот решил переучиться на Java Enterprise и пытаюсь разобраться со Spring, надеюсь через несколько месяцев у меня все получится))
@DmitriyTs
@DmitriyTs Жыл бұрын
ну как успехи?
@vazhmax2632
@vazhmax2632 3 ай бұрын
ну как успехи?
@AlexPlayer1000
@AlexPlayer1000 3 ай бұрын
@@vazhmax2632 ушел в 1с
@user-s5f
@user-s5f 5 жыл бұрын
Спасибо за уроки!
@maitreeee
@maitreeee 3 жыл бұрын
Через Autowired самый простой и понятный способ
@ms_shifu7047
@ms_shifu7047 5 жыл бұрын
Во, уже жара начинается, жалко еще норм качество не подъехало.
@muhamedoshan5246
@muhamedoshan5246 5 жыл бұрын
Очень интересная тема по Spring🔥🔥, и урок самый понятный, доступными словами. Можно еще урок по Spring AOP😭.
@e.s.krivonogov
@e.s.krivonogov 2 жыл бұрын
Спасибо. Доната не жаль)
@tomozi1
@tomozi1 4 жыл бұрын
Превосходный курс
@КонстантинЪЪЪ
@КонстантинЪЪЪ 5 жыл бұрын
лайк, посмотрю позже )
@leshiyboroda5369
@leshiyboroda5369 5 жыл бұрын
хорошая подача материала...
@Dmitry-Trofimov
@Dmitry-Trofimov 4 жыл бұрын
Копировать строчку можно просто нажатием Ctrl + d в Идее
@igorfirs6504
@igorfirs6504 4 жыл бұрын
thankful
@frolomaskor
@frolomaskor Жыл бұрын
2:11 Если не находится ни одного бина - ошибка. Если подходят несколько бинов - *Фатальная ошибка*
@blackmulthumor
@blackmulthumor 3 жыл бұрын
Спасибо
@andreydmitriyev4582
@andreydmitriyev4582 4 жыл бұрын
Спасибо!
@pavelsamsonenka3155
@pavelsamsonenka3155 5 жыл бұрын
Супер!
@kengerfil
@kengerfil 3 жыл бұрын
Почему аннотация "@Component" называется именно так, а не "@Bean"?
@xackuuu
@xackuuu 4 жыл бұрын
Почему без анотации @Autowired все равно код работал?
@СашаНемо-з2ы
@СашаНемо-з2ы 3 жыл бұрын
В XML всё было сконфигурировано
@xackuuu
@xackuuu 3 жыл бұрын
@@СашаНемо-з2ы Понял) Спасибо)
@VarnavskyIvan
@VarnavskyIvan 3 жыл бұрын
...не знаю. Вот сижу смотрю про этот Spring и не понимаю всё равно нафига оно надо. Может дальше будет понятнее, но пока так. Т.е. мы делаем то тоже самое но в других местах, другими способами и менее очевидно и прозрачно, с помощью "магии", подключения лишних библиотек и прочего, но при этом я вообще не вижу в чём упрощение разработки, всё так же приходится прописывать, только иначе. Причем это иначе не сказать что проще, скорее наоборот. Может я тупой, а может как обычно "пользуемся потому что модно" как было уже не раз. История идет по кругу как говорится, вон сколько метаний вокруг работы с БД, JDBC, потом JDO который действительно удобный в некоторых реализациях, потом про него дружно забыли, потом ничёсе JPA! Потом опять про JDBC и что нам делать... А-а-а как бы есть уже инструменты. Нет, давайте заново изобретать JPA, а потом опять же заново изобретать JDO. В итоге куча разных реализаций одного и того же. Не знаю, странная фигня если честно, куча новых названий для одно и того же, куча механизмов для одного и того же. Почему аннотации Component нужно было делать если из этого Bean делается, не проще ли сразу назвать понятно. Почему названия сетеров преобразуются по одному шаблону, а остальное по другому? Зачем так делать? Это же криво и неудобно.
@isanyoc
@isanyoc 10 ай бұрын
Autowired по всей видимости не обязательно использовать над конструктором. Спринг сам добавляет эту зависимость без аннотации
@АндрейСмирнов-в9и
@АндрейСмирнов-в9и 5 жыл бұрын
Хорошие видео, очень доступно и понятно. Большое спасибо автору. Один только вопрос, почему вы не пользуетесь горячими клавишами в IDEA? (Ctrl + D - копирование строки, Shift + f6 - изменение названий)
@yevhenb2312
@yevhenb2312 4 жыл бұрын
Думаю ответ на столько прост, что о нем никто не задумывался - когда делается учебное видео, то должно быть все визуализировано. К примеру запускать можно тоже через shift+F10, но для наглядности делает это мышкой.
@ЕкатеринаСергеевнаШевчук
@ЕкатеринаСергеевнаШевчук 4 жыл бұрын
Вы очень хорошо рассказываете. Было бы круто, если бы у вас было бы видео про spring+hibernate
@sigma3131
@sigma3131 2 жыл бұрын
Заметил, что когда делаю внедрение зависимостей через конструктор без @Autowired, то тоже все работает. Значит здесь Спринг сам понимает какой бин куда внедрять?
@romanmotovilov129
@romanmotovilov129 4 жыл бұрын
Читал, что Спринг сам уже не рекомендует ставить аннотацию над переменными, а использовать ее над сеттерами. Ещё, когда ставим над конструктором, то мы добавляем лишнюю зависимость классу, а она не всегда бывает нужна!
@lilawp319
@lilawp319 Жыл бұрын
Возникает проблема,что Spring не может найти bean с названием rockMusic , хотя кажется все также как у вас
@konstantinz5058
@konstantinz5058 5 жыл бұрын
Спасибо за столь подробные уроки! У меня вопрос: на 13:05 - спринг создает бин мьюзик плеера и внедряет зависимость через сеттер. Однако, у мьюзик плеера в конструкторе - обязательна передача объекта мьюзик, и пустого конструктора нет. Я ожидал ошибку, мол нет конструктора по-умолчанию, ан-нет. Можете прокомментировать эту ситуацию? Спасибо :)
@Bezpalov2
@Bezpalov2 5 жыл бұрын
Похоже, что спринг видя надобность в конструкторе бина определенного типа ищет этот бин у себя в контексте даже при отсутствии аннотации @Autowired над конструктором. Если в этом примере убрать @Autowired с сетттера, то все также будет прекрасно работать как и с ним, и переменная music не будет null. Что же до дефолтного конструктора, то при его наличии в этом примере отрабатывал бы он
@manOfPlanetEarth
@manOfPlanetEarth 4 жыл бұрын
Евгений Зозуля ✋🏼 извиняюсь за прошлый пост( да, при наличии дефолтного конструктора в данном примере отрабатывал бы этот дефолтный конструктор, а зависимость внедрялась бы чз сеттер, помеченный @Autowired.
@viramaximets2109
@viramaximets2109 3 жыл бұрын
Spring Framework. Урок 10: Аннотация @Autowired. Внедрение зависимостей (Dependency Injection).
@alekseysidorenko1855
@alekseysidorenko1855 5 жыл бұрын
Вопрос по поводу @Autowired, в частности момента на 15:35. Я по невнимательности не поставил аннотацию на конструктор MusicPlayer, но тем не менее все работает и без нее. Почему так?
@alishevN
@alishevN 5 жыл бұрын
Начиная со Spring версии 4.3, если в вашем классе есть только один конструктор, можно не ставить аннотацию @Autowired на него и Spring будет по умолчанию внедрять зависимости через этот конструктор. Тем не менее я предпочитаю всегда ставить аннотацию @Autowired, так как это делает код более читабельным и понятным (некоторые люди могут не знать об этой "фишке", а если стоит аннотация @Autowired то все сразу понятно).
@alekseysidorenko1855
@alekseysidorenko1855 5 жыл бұрын
@@alishevN Да, соглашусь, фича сомнительная. Спасибо большое за пояснение.
@tatiana-mih
@tatiana-mih 3 жыл бұрын
Наиль, мои знакомые интересовались, есть ли хорошие курсы по Java на английском на ютубе. Я им ответила, что лучшее, что нашла ваши курсы. Рассматриваете ли вы возможность хотя бы поместить субтитры на английском в своих видео-уроках?
@alishevN
@alishevN 3 жыл бұрын
подумаю, спасибо)
@pascha9141
@pascha9141 2 ай бұрын
по поводу внедрения зависимости напрямую через поле. IDEA пишет мне: Field injection is not recommended. рекомендую вам загуглить эту ошибку. вы сможете понять, что принятие решения о том, какое внедрение зависимостей использовать, зависит не только от структуры проекта.
@Wyclot
@Wyclot Ай бұрын
у тебя idea взломанная или купил подписку
@vladigasparo
@vladigasparo Жыл бұрын
Здравствуйте, спасибо большое за видео, очень интересно смотреть Ваши уроки. Хотел вот что спросить: если я удаляю аннотацию @Autowired у конструктора класса Computer, у меня продолжает всё работать. Выходит, что данную аннотацию можно и не прописывать?
@ksisaqev
@ksisaqev 3 жыл бұрын
Привет, спасибо за уроки. Подскажи пожалуйста , почему в последнем варианте с классом Computer не падает программа даже если удалить @Autowired над конструктором MusicPlayer? Заранее спасибо
@markifive
@markifive 2 жыл бұрын
начиная со Spring 4.0 аннотацию @Autowired можно не ставить на конструктор, если он единственный в классе.
@skanta
@skanta 3 жыл бұрын
Хм.... в данном уроке всё работает и без @Autowired. Или в новом Спринге это стало не столь обязательным, или я чего-то не понял. Т.е. создаём все бини через компоненты и Спринг без аннотации прекрасно понимает какой бин надо подставить в конструктор.
@xboxivanov
@xboxivanov 4 жыл бұрын
Обнаружил интересную особенность. Если конструктор MusicPlayer не пометить как @Autowired и создать экземпляр MusicPlayer через getBean, то в конструктор все же автоматически передается подходящий бин. Это такая скрытая особенность?
@markifive
@markifive 2 жыл бұрын
начиная со Spring 4.0 аннотацию @Autowired можно не ставить на конструктор, если он единственный в классе.
@МихаилЕлуферьев-и6е
@МихаилЕлуферьев-и6е 11 ай бұрын
Привет из 2023 года, итак, если до использования Spring в учебных проектах в обычной JAVA, создавали счетчик id через static переменную, то уверенно могу сказать, что про создании бинов через @Autowired такой счетчик работать не будет. Решение пока не нашёл, как найду - напишу
@sldstrst2022
@sldstrst2022 2 жыл бұрын
на счет Autowired - если ее не указывать, то всё будет работать точно так же (если два бина и указать Music music в конструкторе МузыкальногоПлеера, то компилятор выдаст ошибку: найдено два компонента, какой жеж выбрать?)
@robertlukasevic7455
@robertlukasevic7455 3 жыл бұрын
Может знаете где найти какие нибудь не сложные проекты для новичков, которые только что освоили ООП? Проекты где можно было бы работать в команде
@Shailesh-et1by
@Shailesh-et1by 2 жыл бұрын
+
@sldstrst2022
@sldstrst2022 2 жыл бұрын
19:00 - почему не нужно вызывать метод toString у объекта computer в мейне?
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 жыл бұрын
это специальный метод его джава сама вызывает чтобы получить представление объекта
@1DiloN1
@1DiloN1 5 жыл бұрын
Видео крутое! Один только вопрос: при внедрении с помощью @Autowired полей всплывает рекомендация: "Field injection is not recommended" - и ниже указана непосредственно рекомендация Spring Team: "Always use constructor based dependency injection in your beans." Что скажете по этому поводу?
@alishevN
@alishevN 5 жыл бұрын
Да, идея считает, что лучше внедрять через конструкторы.
@alishevN
@alishevN 5 жыл бұрын
Так что слова из урока о том, что все 3 способа абсолютно равнозначны не совсем правильные. Лучше все-таки использовать внедрение с помощью конструктора.
@1DiloN1
@1DiloN1 5 жыл бұрын
@@alishevN Спасибо за ответ!
@1DiloN1
@1DiloN1 5 жыл бұрын
@@alishevN Но еще есть общий коцептуальный вопрос: ведь если убрать @Autowired изо всех классов, программа все равно будет работать. Как тогда объяснить необходимость использования этой аннотации в Spring? Возможно, вопрос глупый, но у меня возник.
@alishevN
@alishevN 5 жыл бұрын
Я предпочитаю всегда ставить аннотацию @Autowired, так как это делает код более читабельным и понятным. Некоторые люди не ставят.
@andriymr.x8175
@andriymr.x8175 5 жыл бұрын
Клас!
@kolyanlock
@kolyanlock 3 жыл бұрын
Если мне надо использовать несколько экземпляров класса, как мне сделать это с помощью аннотаций?
@kolyanlock
@kolyanlock 3 жыл бұрын
@Scope("prototype") дополнительно поставить выше или ниже @Component. Что интересно, когда кликаешь с зажатым ctrl на @Scope, можно почитать описание и там ни где не указаны какие вариант можно вписывать.
@ИванКорнилов-я3с
@ИванКорнилов-я3с 3 жыл бұрын
Если у вас эта ошибка Unsupported class file major version 59
@YokoYokoOneTwo
@YokoYokoOneTwo 3 жыл бұрын
А что если конструкторов два, один с @Awtowired другой без?
@БогдановГеоргий-г8л
@БогдановГеоргий-г8л 5 жыл бұрын
Теперь ждём Python!
@alishevN
@alishevN 5 жыл бұрын
скоро!
@bezsovesty6601
@bezsovesty6601 5 жыл бұрын
У меня спринг внедряет зависимости даже без аннотации Autowired, это нормально?
@bezsovesty6601
@bezsovesty6601 5 жыл бұрын
Попробовал удалить аннотацию Autowired, чтобы посмотреть, какая ошибка будет. Но никакой ошибки не было, idea скушала и такой код.
@alishevN
@alishevN 5 жыл бұрын
Начиная со Spring версии 4.3, если в вашем классе есть только один конструктор, можно не ставить аннотацию @Autowired на него и Spring будет по умолчанию внедрять зависимости через этот конструктор. Тем не менее я предпочитаю всегда ставить аннотацию @Autowired, так как это делает код более читабельным и понятным (некоторые люди могут не знать об этой "фишке", а если стоит аннотация @Autowired то все сразу понятно).
@bezsovesty6601
@bezsovesty6601 5 жыл бұрын
@@alishevN Понял, большое спасибо за объяснение)
@andrewblack1684
@andrewblack1684 5 жыл бұрын
А идеа пишет предупреждение, что внедрение зависимостей через поля не рекомендуется. Почему так?
@alishevN
@alishevN 5 жыл бұрын
Да, идея считает, что лучше внедрять через конструкторы.
@АйбекЕрмекбаев-ч2и
@АйбекЕрмекбаев-ч2и 3 жыл бұрын
У меня программа и без аннотации @Autowired запускается на отлично. Или эта аннотация в новых версии джава не актуальна ?
@alishevN
@alishevN 3 жыл бұрын
эту аннотацию можно опускать и Спринг по умолчанию внедрит зависимость, но делать этого не стоит
@АйбекЕрмекбаев-ч2и
@АйбекЕрмекбаев-ч2и 3 жыл бұрын
@@alishevN Спасибо
@vladimirgaydamakin7155
@vladimirgaydamakin7155 2 жыл бұрын
мне одному кажется, что создание полей classicmusic и rockmusic и инициализация их в конструкторе какой-то костыль???? разве нет способа подключить 2 бина к этому конструктору через интрефейс????
@vladimirgaydamakin7155
@vladimirgaydamakin7155 2 жыл бұрын
а если нам нужно только 1 музыку проиграть?? а аргумента обяззтаельно два... хрень какая-то..
@EM1LJAN_
@EM1LJAN_ 2 жыл бұрын
@@vladimirgaydamakin7155 можно в качестве аргумента в конструктор передать лист, тогда кол-во аргументов станет любым - хоть 1 или больше. @Autowired public MusicPlayer(List musicList) { this.musicList = musicList; } UPD: либо обойтись вообще без конструктора подрубив аннотацию сразу к полю @Autowired private List musicList;
@vip51000
@vip51000 4 жыл бұрын
Актуально еще java в 2020? Ведь есть python, C#
@alishevN
@alishevN 4 жыл бұрын
Самые популярные языки января 2020, топ-3 (TIOBE Index): 1) Java 2) C 3) Python
@ИгорьМешалкин-ж7ф
@ИгорьМешалкин-ж7ф 2 жыл бұрын
Объясните пожалуйста такой вопрос. Когда мы внедряли зависимость через сеттер используя дедовский способ (xml) нам приходилось создавать пустой конструктор, или удалять свой для того что бы спринг мог создать объект с пустым полем, что бы потом у этого объекта вызвать сеттер. А здесь конструктор живёт как ни в чём не бывало. Мы знаем что при создании любого 1-го конструктора JVM убивает конструктор по умолчанию (поэтому мы и создавали пустой, как вариант). Внимание вопрос! Как спринг в этом случае создаёт объект у которого потом вызывает сеттер? Спасибо.
@XFNeoful
@XFNeoful 5 жыл бұрын
Не понял 2 момента: Как что спринг передает в в конструктор(если на нем не стоит @Autowired), если у нас нет пустого конструктора? И если вообще нет @Autowired,то он все равно создает бин и добавляет зависимость
@igorvasylevskyi3629
@igorvasylevskyi3629 5 жыл бұрын
С какой-то версии Спринг в каких-то случаях может работать и без @Autowired
@Belarussianin
@Belarussianin 5 жыл бұрын
Смотрю ваши видео и вижу маленький пробел - в идее строку кода можно дублировать хоткеем Ctrl+D. Попробуйте, так быстрее и удобнее.
@nikitayarosh3885
@nikitayarosh3885 4 жыл бұрын
а как быть если у класса, например, RockMusic будет конструктор, который принимает как параметр String songName? можно ли туда сразу как-то запихнуть значение?
@Дмитрий-ю9к3г
@Дмитрий-ю9к3г 4 жыл бұрын
Последний способ гораздо выигрышнее смотрится, т.к. он уменьшает количество кода. Хочется его конечно же применять. Но присутствует страх, что такой способ неполноценен.
@igoman26
@igoman26 3 жыл бұрын
Постоянно боюсь, что полоска видео дойдёт до конца и видео прервётся
@redprefect1689
@redprefect1689 4 жыл бұрын
Не очень понял на 9:15, смысл ставить аннотацию @Autowired для конструктора ClassicalMusic? если и без нее класс TestSpring запустится и вернет валидные данные в консоль. Погуглил и оказывается для констукторов аннотация @Autowired - не обязательна.
@manOfPlanetEarth
@manOfPlanetEarth 4 жыл бұрын
херня какая-то. а для чего она? только для сеттеров? раздражает отсутствие четких правил. что запоминать-то?????
@VladimirDubenco
@VladimirDubenco 4 жыл бұрын
Я не нахожу в ваших уроках продвинутая Java обсуждения аннотации и рефлексии. Это ошибка или намерено.
@alishevN
@alishevN 4 жыл бұрын
Эти уроки находятся в секции "Другие темы".
@Good_nick_name
@Good_nick_name 4 жыл бұрын
можно массив сделать и все
@e.s.krivonogov
@e.s.krivonogov 2 жыл бұрын
13:00 Когда добавляем зависимость через setter. Даже если у setter не писать @autowired, все равно программа успешно запускается.
@e.s.krivonogov
@e.s.krivonogov 2 жыл бұрын
Разобрался. Зависимость внедряется на уровне конструктора. на 12:57 хорошо бы было удалить сначала конструктор. Потом показать, что "всё ломается". Затем на уровне сеттера autowared, и затем показ, что все работает. (с) Просто предложил.
@kengerfil
@kengerfil 3 жыл бұрын
13:55 А как Bean может создаться без какого-либо конструктора? Фабрики тоже нет. Bean, как ни как, это же объект...
@omar_akkulov
@omar_akkulov 3 жыл бұрын
благодаря аннотации как раз и будет создаваться с помощью рефлексии этот объект(bean) Music music, который и будет зависимостью для MusicPlayer. Все ровно так же, как и с конструктором, где созданный уже бин этого объекта подается внутрь нашего конструктора
@par9shiy813
@par9shiy813 2 жыл бұрын
почему спринг такой умный?
@Good_nick_name
@Good_nick_name 4 жыл бұрын
@Component public class MusicPlayer { @Autowired private Music music[]; public void playMusic(){ for(Music f : music) System.out.println("Playing: " + f.getSong()); } }
@whereamibluesky3554
@whereamibluesky3554 8 ай бұрын
я так понимаю даже если ничего не указывать, @autowired будет внедрять зависимость через конструтор по умолчанию
@Wyclot
@Wyclot 2 ай бұрын
А том же
@alexlklim
@alexlklim Жыл бұрын
lombok @RquiredArgumentsCOnstructor
@neurabrain
@neurabrain Жыл бұрын
Насколько реально при таких Аннотациях использовать Lombok ? @Data и @AllArgsConstructor
@ОльховийМихайло
@ОльховийМихайло 5 жыл бұрын
Голос приятный, разобираешь всё по пунктам, затрагиваешь тонкости, всё объясняеться на примерах - смотреть одно удовольствие!
@alishevN
@alishevN 5 жыл бұрын
Спасибо!
@c.d.e5852
@c.d.e5852 Жыл бұрын
необходима ли аннотация @Autowired над конструктором? если ее не ставить все и так прекрасно работает. А вот сеттер без этой аннотации не срабатывает. не понятно
@MisterTrayser
@MisterTrayser Жыл бұрын
Курс классный! Но пока вся эта возня с зависимостями выглядит как танцы с бубнами над вещами, которые можно было бы легко сделать обычными конструкторами. Посмотри что будет дальше
@БакытБазарбаев-в4ь
@БакытБазарбаев-в4ь 2 жыл бұрын
почему у меня не работает System.out.println () вне метода
@Андрей-Зубков
@Андрей-Зубков 4 жыл бұрын
Спасибо, супер доступное объяснение, один момент только не совсем для меня понятен, для чего в конструкторе вы передаёте айдишник (this.id = 1) и почему внедряется не спрингом? Это на случай если будет несколько компьютеров? Тогда в каждом нужно будет самим передавать индивидуальное значение id?
@Креветковыетехнологии
@Креветковыетехнологии 3 жыл бұрын
Вы упомянули что @Autowired приватного поля копает рефлексию, позже вы утверждаете что любой @Autowired одинаков в функциональности, так ли это?
@Креветковыетехнологии
@Креветковыетехнологии 3 жыл бұрын
если разница лишь в setAccessible, то прошу прощения, но ведь все равно разная реализация получается
OYUNCAK MİKROFON İLE TRAFİK LAMBASINI DEĞİŞTİRDİ 😱
00:17
Melih Taşçı
Рет қаралды 12 МЛН
А ВЫ ЛЮБИТЕ ШКОЛУ?? #shorts
00:20
Паша Осадчий
Рет қаралды 9 МЛН
Brawl Stars Edit😈📕
00:15
Kan Andrey
Рет қаралды 54 МЛН
Самое неинтересное видео
00:32
Miracle
Рет қаралды 2,9 МЛН
Dependency Injection простыми словами
18:17
devschacht
Рет қаралды 86 М.
Spring @Configuration и @Component  одно и тоже? Или нет?
17:00
deadlocksOfDeadBlocks
Рет қаралды 3,1 М.
Как настроить зависимости (beans, property) в Spring
18:52
OYUNCAK MİKROFON İLE TRAFİK LAMBASINI DEĞİŞTİRDİ 😱
00:17
Melih Taşçı
Рет қаралды 12 МЛН