За время разработки цитатника в этом видео, я выделил топ цитат от Евгения: 1) try-catch всегда некрасиво, и плохо сказывается на нервной системе 2) -Вы используете тесты? -Да, мы пишем тесты -А как вы пишите тесты? -Ну как? - main создаем, прямо в том же классе, который надо протестировать - очень удобно. Прям там создаем объект из этого класса, запускаем, смотрим - если 17 - то нормально 3) Лучше знать, что есть проблема (null), чем жить с каким-то нулем 4) Знаете почему важно не делать грамотические ошибки? - стыдно перед заграничными партнерами 5) ...сatch пустой не буду оставлять - грех
Плотность информации на одну минуту видео просто зашкаливает. Всё по делу без воды. Каждое предложение - очень ценная информация. Если по этим двум частям сделать книгу, то выйдет мануал страниц на 300, не меньше.
Если у программистов есть хороший тон и правила чистого кода, то у ведущего (в данном случае докладчика) не должны быть "айбернейты" , "собаки", также эмм ымм бээем. При всем уважении.
@@BiteMyBrain Посмотрел далее ... Доклад отличный! По вашей аналогии, примерно как сесть в такси бомбилы из Кавказа :) Водитель с акцентом, но душевно что-то рассказывает =)
Все советуют это видео новичкам в Спринге, так вот не слушайте их. Лекция явно для тех, кто уже в теме, так что если вы ничего не поняли - то нормально. Лично я вернулся к этой лекции спустя полгода работы на Спринге
@@dimchik-kenshi думаю вам уже неактуально, но может кому-то из прочитавших позже будет полезно У Алишева есть курс по Спрингу, часть которого лежит на ютубе в открытом доступе Канал alishev, там в целом много полезного по Java
Сначала проходил Spring сам, потом делал тестовые на Spring Boot, сейчас имея небольшой опыт смотрю его лекции на стажировке. Евгений очень круто и без воды объясняет, доходчиво и понятно. Как лектор он крутой
Лекция крайне плотная и информативная. Но после неё всё равно остаётся куча внутренностей, которые еще надо "потрошить", изучать)) Например, про то, как работает сканер бинов в современной версии спринга. И каким именно образом работает класс, подменяемый dynamic proxy. Хотя, когда-то я еще писал свой кривой BeanDefinitionReader и BeanFactory, так что у меня всё таки вопросов по внутренностям чуть меньше)) Погружаться в это можно очень долго. Но это интересно!
Пока смотрела все было понятно. На следующий день хотела повторить- вообще ниче не помню! А вообще, доклад- супер. Если эта инфа и есть в оф доках, отфильтровать ее самостоятельно было бы очень не просто
46:23 - двадцать шестое июня, четверг, воcемь вечера. Несмотря на то, что все устали от коммитов в проект, ребята нашли в себе силы прийти ещё на доклад Борисова и поразвиваться.
Евгений крайне интересно вещает, запись смотрится на одном дыхании, но всё время меня не покидала мысль, что поведением похож на Александра Якушева("Курск" КВН)
7:18 неверное утверждение- BeanFactory создаёт singleton-бины при первом запросе, а не не при запуске контекста. А вот ApplicationContext как раз создаёт синглтоны при поднятии контекста
можно и заимплементить интерфейс BeanFactoryPostProcessor и доставать через рефлексию нужны поля, разница только в том, что BeanPostProcessor работатет уже с проиниализироваными полями обьекта, а BeanFactoryPostProcessor - после загрузки бинов в контейенер dzone.com/articles/spring-bean-lifecycle
Жесть конечно как тяжко всё это воспринимать человеку недавно зашедшему в спринг, по 20 раз пересматриваю каждый момент, чтобы понять что он там пытался осветить.
прям с трудом верится, что видео перед выкладыванием не было ускорено. неужели можно так быстро мыслить, говорить и жестикулировать?) однако при просмотре на скорости 0,75 понимаешь, ... не мог человек в таком состоянии прийти на свое выступление)))
Как он делает эту магию при написании кода? пишет r и у него появляется целая строка, где он создает экземпляр класса Random. Потом в другом месте нажимает по всей видимости ctrl+alt+L и у него сами проставляются точка с запятой в конце строки, кто знает как это настроить?)
Можно конечно. Но цель доклада немного глубже конкретной задачи профилирования). AOP ведь тоже работает через proxy, а после доклада складывается впечатление, как оно может быть реализовано.
@@igorvasylevskyi3629 По мне, так новичку надо смотреть минимум два раза - сразу и после того как поковыряешься в спринге. Первый просмотр просто много чего в голову откладывает, а второй - уже рассортировывает.
Классный урок. Но оператора я бы выгнал. Показывать лектора крупным планом без доски большую часть времени, это супер. Наверное оператор считает, что в размахивании руками информации больше, чем в примерах на доске.
А как происходит консолидация (объединение) результатов работы методов postProcessAfterInitialization разных BeanPostProcessor'ов? Ну то есть...Пусть есть 10 моих кастомных аннотаций, которые меняют логику бина, добавляя к его методам 10 соответствующих функционалов. Делаем 10 BeanPostProcessor'ов (далее BPP). Это нужно делать на стадии AfterInitialization и возвращать в методе postProcessAfterInitialization прокси с добавленным функционалом. В каком порядке сработают мои 10 BPP? Что после отработки всех 10 BPP будет в контейнере: один прокси объект (объединяет в себе все функционалы) или 10 разных прокси оберток над оригиналом? Ну то есть в итоге же я должен получить bean, к оригинальной реализации которого накручено 10 функционалов. Как это получается? Это многослойная прокси обёртка получаетя?
Думаю первый раз создастся прокси над оригинальным классом, а потом будут создавать прокси на предыдущим прокси и так 9 раз. И результирующий прокси будет выполнять весь функционал. В каком порядке будут вызываться BPP это не должно быть важно. Если это важно, т.е. Вам нужно чтобы логика одного BPP срабатывала прежде другого BPP, то тогда нужно пересмотреть эту логику и возvожно объединить в один BPP.
думаю нет,потому что ни хрена не поймешь. я прошел курс Алишева , написал маленький проект и даже после этого когда смотрел ничего не понял. раза 10 пересмотрел и вроде на 80% понял
If the target object to be proxied implements at least one interface then a JDK dynamic proxy will be used. All of the interfaces implemented by the target type will be proxied. If the target object does not implement any interfaces then a CGLIB proxy will be created.
Спринг изучаю не так давно, и все время меня коробило чувство, что за меня кучу работы делает Господь Бог. С одной стороны хорошо, но с другой - я не мог точно знать, как он это делает, а непонимание процесса до конца вызывало дискомфорт. Это все равно что играть в игру не до конца понимая её правила. С этим видео хоть что-то проясняется. Ещё заметил, что многие вещи в Спринге становятся более понятными, когда ты до этого велосипедил их вручную.
Michael Morrison Ели брать только Java SE, то тут не соглашусь, тут чистый кодинг, а вот EE и Spring , то есть где в дело вступают контейнеры, то там поначалу очень много временем уходит на понимание работы этих контейнеров, так как львиную долю работы выполняют именно они. Есть конторы, которые сводят к минимуму использование фреймворков, и пишут свои библиотеки, чтобы иметь более полный контроль над кодовой базой.
Michael Morrison Я спринг читаю в метро по дороге на работу для общего развития, прямо сплошняком по reference. Хоть и не пользуюсь, а кругозор расширяет ))
норм) обычный жизненный цикл бина... по поводу eventLiteners конечно накручено я думаю это было просто сказано в образовательных целях сомневаюсь чтобы вот так извращались в рядовых проектах обычно все заканчивается на postProcessAfterInitialization
26:24 - "то ему придётся делать очень сложную работу..... " - Евшений Борисов, Вам удаётся совмещать стендап комеди, с обучением программированию, и программированием людей на выполнение очень сложной работы. Х))
28:16 - Евгений Борисов, небольшая поправка -Первый подход - это циглиб (когда класс не имеет интерфейса или класс файнал(с ваших слов)), а второй это динамик прокси. Вы просто 5ю секундами ранее говориле сначала о наследовании от классов, а потом как второй вариант от интерфейсов, и следом вы НАЗЫВАЕТЕ эти подходы как Динамик прокси и "вторым" Вы называетее циглиб.
В мене був NPE через те що я в методі postProcessAfterInitialization(Object bean, String beanName) забув змінити return null на return bean. Можливо вам допоможе)
+Roman Chmeluk В общем-то упущение в дизайне фреймворка, что он не хэндлит такое. Тем более что IDE при генерации метода по умолчанию вставляют "return null;", и это всем известно.
Молодцы ребята,очень интересный ролик. Кто хочет почитать или просто угареть от еще одной теории о том что на земле лесов нет: www.as-gard.com/30-metrovye-kusty
Мда спринг очень гибок, даже слишком гибок, я лично предпочитаю больше EJB3.2 и очень стандартизированную архитектуру, блин зачем Оракл отдал JEE в Eclipse, ведь так всё было хорошо и стабильно, теперь клиенты всех хотят Спринг, теперь стринг надо всем джавистам учить.
Я 10 лет работаю с явой, примерно лет 7 назад удалил spring из все проектов и слава богу. Перешел на Guice. Но на самом деле и Guice особо не нужен. Написал свой маленький Injector. Чем меньше чужого кода в твоих проектах, тем лучше. (Hibernate кстати тоже снес)
У современных баз данных mongodb, redis, google datastore, cassandra есть своей api, плюс я использую свои утилиты или можно библиотеки написанные другими людьми. В крайнем случае можно jdbc напрямую, через опять же свои обертки. Скорость, простота и предсказуемость решения важнее, чем мнимое удобство hibernate.
Для меня недоходчиво было от слова совсем, автор изъясняется на эльфийском, нужно смотреть каждое второе слово в словаре. Терминологии, которую объяснил вначале, раз-два и обчёлся.
Пишу из будущего прошло 300 лет, а доклад все ещё актуален
8 лет прошло, а до сих пор актуальный и информативный доклад.
Я бы даже сказал, 8 лет прошло, а более качественного материала на эту тему я на просторах сети не нашел
@@user-nv9dr7nt3d как новичок сейчас смотрю, пока мало что понятно. но, думаю, дело времени.
@@Daniel-mo1iy сюда стоит заходит когда уже прошел какой-то приличный курс по спрингу, тогда прям будет хорошо
8 лет прошло, а у нас эти фишки только начали использовать на проекте под маркой "а вот оказывается как ещё можно делать в спринге".
продлеваем: 9 лет прошло, а до сих пор актуальный и информативный доклад.
Спустя 10 лет мне наконец-то пригодилось! Написал свой первый бинпостпроцессор, ура!
Смотрю 5й раз, с каждым разом понимаю чуть больше)
это как библию читать))
За время разработки цитатника в этом видео, я выделил топ цитат от Евгения:
1) try-catch всегда некрасиво, и плохо сказывается на нервной системе
2)
-Вы используете тесты?
-Да, мы пишем тесты
-А как вы пишите тесты?
-Ну как? - main создаем, прямо в том же классе, который надо протестировать - очень удобно. Прям там создаем объект из этого класса, запускаем, смотрим - если 17 - то нормально
3) Лучше знать, что есть проблема (null), чем жить с каким-то нулем
4) Знаете почему важно не делать грамотические ошибки? - стыдно перед заграничными партнерами
5) ...сatch пустой не буду оставлять - грех
познавательно и доходчиво, 10 постбинпроцессоров из 10
ведьмак от мира фреймворков
Бинпостпроцессоров =))
скорее 5/5, по количеству выводимых рандомом сообщений
08:30 BeanPostProcessor
25:15 Профайлер, JMX
49:00 ApplicationListener
Спасибо!
Плотность информации на одну минуту видео просто зашкаливает. Всё по делу без воды. Каждое предложение - очень ценная информация. Если по этим двум частям сделать книгу, то выйдет мануал страниц на 300, не меньше.
Этот доклад прям на цитаты можно разбирать:
"Лучше получить эксепшн, чем жить с каким-то нулем",
"Не буду catch блок пустым оставлять - грех".
"трай и кетч всегда некрасиво и плохо сказывается на нервной системе" :)
Еще это: "Если у внутреннего компонента спринга класс меньше двадцати букв, то это просто несерьезно" ))
@@hramovalexey Либо как в части про профилирование: "Если стоит - то ему придется делать сложную работу"
"А кто здесь не грешил? ))"
Лучшие лекции по spring даже несмотря на дату публикации.
Огромное спасибо за такое видео. Чел просто супер объясняет. Побольше бы именно такого плана видео.
Если у программистов есть хороший тон и правила чистого кода, то у ведущего (в данном случае докладчика) не должны быть "айбернейты" , "собаки", также эмм ымм бээем. При всем уважении.
@@azamatk4302 так вам шашечки или ехать? :)
@@BiteMyBrain Посмотрел далее ... Доклад отличный! По вашей аналогии, примерно как сесть в такси бомбилы из Кавказа :) Водитель с акцентом, но душевно что-то рассказывает =)
смотрел очень давно и год назад, сейчас в третий раз смотрю и все понимаю, самый крутой видос по спрингу
шикарное видео, раз в годик пересматриваю с удовольствием)
Все советуют это видео новичкам в Спринге, так вот не слушайте их. Лекция явно для тех, кто уже в теме, так что если вы ничего не поняли - то нормально. Лично я вернулся к этой лекции спустя полгода работы на Спринге
вернулся спустя 3 года)
полностью согласен, гораздо полезнее тем кто уже в теме
Необязательно. Я смотрел эту лекцию до того, как написал первые строчки на спринге.
@@spirridd я смотрю и нихрена не понимаю
Посоветуете что-то новичкам?)
@@dimchik-kenshi думаю вам уже неактуально, но может кому-то из прочитавших позже будет полезно
У Алишева есть курс по Спрингу, часть которого лежит на ютубе в открытом доступе
Канал alishev, там в целом много полезного по Java
Сначала проходил Spring сам, потом делал тестовые на Spring Boot, сейчас имея небольшой опыт смотрю его лекции на стажировке. Евгений очень круто и без воды объясняет, доходчиво и понятно. Как лектор он крутой
Спасибо большое за лекцию! И отдельное спасибо за чёткую наложенную картинку с кодом!
ребята, это база! уважение Евгению
Доклад очень хороший . Только недавно начал работать со Спрингом . после доклада стало намного понятнее как он работает . Супер !
Да, человек умеет рассказывать. Спасибо большое.)
Один из лучших роликов по теме
Один из лучших технических докладов на русском языке
на иврите же :)
Спасибо вам огромное. Один из самых приятных докладов. Евгений отлично рассказывает, все очень последовательно и по делу.
Лекция крайне плотная и информативная. Но после неё всё равно остаётся куча внутренностей, которые еще надо "потрошить", изучать)) Например, про то, как работает сканер бинов в современной версии спринга. И каким именно образом работает класс, подменяемый dynamic proxy. Хотя, когда-то я еще писал свой кривой BeanDefinitionReader и BeanFactory, так что у меня всё таки вопросов по внутренностям чуть меньше)) Погружаться в это можно очень долго. Но это интересно!
Если поставить скорость видео на х0.5, то можно услышать как говорит Евгений после употребления Бенчмарка или Синглтона
Лекция супер. Если кому интересно, то рандом так игрался из-за того, что в метод передаем не разницу, а сумму (смещаем отрезок)
Лучший спикер по Java!)
Пока смотрела все было понятно. На следующий день хотела повторить- вообще ниче не помню! А вообще, доклад- супер. Если эта инфа и есть в оф доках, отфильтровать ее самостоятельно было бы очень не просто
+
46:23 - двадцать шестое июня, четверг, воcемь вечера. Несмотря на то, что все устали от коммитов в проект, ребята нашли в себе силы прийти ещё на доклад Борисова и поразвиваться.
Как хорошо что есть в записи! Был бы на докладе в живую, уловил бы процентов 30 только..
Просто огонь! Спасибо.
шедевр искусства
Легендарный доклад
Кто эти люди, которые поставили дизлайк!!??
Доклад на высоте, спасибо.
Евгений, спасибо. Очень доступно.
Офигительный доклад, спасибо!
Большое спасибо!
Евгений крайне интересно вещает, запись смотрится на одном дыхании, но всё время меня не покидала мысль, что поведением похож на Александра Якушева("Курск" КВН)
а я смотрю и думаю, кого же он мне напоминает
До сих пор лучшее видео о спринге на ютубе
это оч круто, первый раз досмотрел до конца и даже что-то понял :)
Шикарно!
Отличное видео, понятным языком) Спасибо
это сильно, браво
считаю что работы Евгения должны спрашивать в универе и на собеседованиях на ровне с другими предметами
Смотрю в 2021 и мне прямо очень заходит, могут же
Волшебная лекция) Спасибо)))
7:18 неверное утверждение- BeanFactory создаёт singleton-бины при первом запросе, а не не при запуске контекста. А вот ApplicationContext как раз создаёт синглтоны при поднятии контекста
Спасибо
Gut gemachen, Evgeny!
можно и заимплементить интерфейс BeanFactoryPostProcessor и доставать через рефлексию нужны поля, разница только в том, что BeanPostProcessor работатет уже с проиниализироваными полями обьекта, а BeanFactoryPostProcessor - после загрузки бинов в контейенер
dzone.com/articles/spring-bean-lifecycle
+1 за Therion
Жесть конечно как тяжко всё это воспринимать человеку недавно зашедшему в спринг, по 20 раз пересматриваю каждый момент, чтобы понять что он там пытался осветить.
11.05.2050 spring уже нет, все еще лекция актуальна
прям с трудом верится, что видео перед выкладыванием не было ускорено. неужели можно так быстро мыслить, говорить и жестикулировать?)
однако при просмотре на скорости 0,75 понимаешь, ... не мог человек в таком состоянии прийти на свое выступление)))
))))
Люди все разные, энергичный просто человек, увлеченный
Он просто это уже не первый десяток раз рассказывает, это я как экскурсионный гид говорю. Всё уже на автомате...
21 сишарперов дислайкнули
если бы я так защищал свой диплом, мне бы поставили шестерку и вручили приз зрительских симпатий
палец вверх от СЕООНЛИ!!!!!!!!
на 0,75 нормально смотреть
Смотрю на 2.0
))))) и голос, как-будто 0,75 хряпнул
Тоже сначала увеличивал, потом вернул обычную
Да, редкий пример, когда человек не нудит и все говорит по делу. Очень хороший докладчик. Смотрел на 1 с частыми перемотками назад.
Как он делает эту магию при написании кода? пишет r и у него появляется целая строка, где он создает экземпляр класса Random. Потом в другом месте нажимает по всей видимости ctrl+alt+L и у него сами проставляются точка с запятой в конце строки, кто знает как это настроить?)
У enabled флага volatile не нужен?
Здесь не многопоточность
А где можно найти презентацию доклада?
Сильно не ругайте за вопрос - только начинаю изучать spring. Разве нельзя делать профилирование такого типа через spring AOP?
Можно конечно. Но цель доклада немного глубже конкретной задачи профилирования). AOP ведь тоже работает через proxy, а после доклада складывается впечатление, как оно может быть реализовано.
"Чиню баг, которого нет, а у него всё равно баг" жиза
Лекция отличная, но раньше я думал что говорят "поднимусь повыше" скроля вниз только люди 60+
Что нужно знать, чтобы это видео было полезно? Я знаю только Java Core и SQL. Будет какой-то толк? Или посоветуете что-то прочитать?
Ето точно не для новичков, ето для тех, кто уже нормально ознакомлен со Spring
Igor Vasylevskyi ну вот и я так думаю, а много людей мне советуют эти видео, когда я у них спрашиваю о инфе про спринг
@@igorvasylevskyi3629 По мне, так новичку надо смотреть минимум два раза - сразу и после того как поковыряешься в спринге. Первый просмотр просто много чего в голову откладывает, а второй - уже рассортировывает.
Классный урок. Но оператора я бы выгнал. Показывать лектора крупным планом без доски большую часть времени, это супер. Наверное оператор считает, что в размахивании руками информации больше, чем в примерах на доске.
А как происходит консолидация (объединение) результатов работы методов postProcessAfterInitialization разных BeanPostProcessor'ов?
Ну то есть...Пусть есть 10 моих кастомных аннотаций, которые меняют логику бина, добавляя к его методам 10 соответствующих функционалов. Делаем 10 BeanPostProcessor'ов (далее BPP). Это нужно делать на стадии AfterInitialization и возвращать в методе postProcessAfterInitialization прокси с добавленным функционалом.
В каком порядке сработают мои 10 BPP?
Что после отработки всех 10 BPP будет в контейнере: один прокси объект (объединяет в себе все функционалы) или 10 разных прокси оберток над оригиналом?
Ну то есть в итоге же я должен получить bean, к оригинальной реализации которого накручено 10 функционалов. Как это получается? Это многослойная прокси обёртка получаетя?
Думаю первый раз создастся прокси над оригинальным классом, а потом будут создавать прокси на предыдущим прокси и так 9 раз. И результирующий прокси будет выполнять весь функционал. В каком порядке будут вызываться BPP это не должно быть важно. Если это важно, т.е. Вам нужно чтобы логика одного BPP срабатывала прежде другого BPP, то тогда нужно пересмотреть эту логику и возvожно объединить в один BPP.
еще ПрОфиль и профИль.))) Лекция супер.
Не пропущена ли часть видео где Евгений с пакетом qualifiers играется?
Подскажите стоит смотреть с этого если спринг не изучал до этого
думаю нет,потому что ни хрена не поймешь. я прошел курс Алишева , написал маленький проект и даже после этого когда смотрел ничего не понял. раза 10 пересмотрел и вроде на 80% понял
По поводу того, что спринг выбирает механизм проксирования CGlib или DynamicProxy,... он всегда использует Cglib, всегда
Доку быть хоть почитал, как он создаст Gglib, если мой бин не наследуется ни от одного интерфейса?
If the target object to be proxied implements at least one interface then a JDK dynamic proxy will be used. All of the interfaces implemented by the target type will be proxied. If the target object does not implement any interfaces then a CGLIB proxy will be created.
59:00 если бин создан через метод в @Configuration то getBeanClassName вернет null же?
Если речь идёт про метод, аннотированный @Bean и подобные, то насколько я знаю, спринг генерирует имя бина по имени метода.
вы не нашли ответ почему так происходит?
Думаю что getBeanClassName и здесь нормально отработает, т.к. в BeanDefinition название класса бина возьмется как имя название возвращаемого объекта
Спринг изучаю не так давно, и все время меня коробило чувство, что за меня кучу работы делает Господь Бог. С одной стороны хорошо, но с другой - я не мог точно знать, как он это делает, а непонимание процесса до конца вызывало дискомфорт. Это все равно что играть в игру не до конца понимая её правила. С этим видео хоть что-то проясняется. Ещё заметил, что многие вещи в Спринге становятся более понятными, когда ты до этого велосипедил их вручную.
Michael Morrison Ели брать только Java SE, то тут не соглашусь, тут чистый кодинг, а вот EE и Spring , то есть где в дело вступают контейнеры, то там поначалу очень много временем уходит на понимание работы этих контейнеров, так как львиную долю работы выполняют именно они. Есть конторы, которые сводят к минимуму использование фреймворков, и пишут свои библиотеки, чтобы иметь более полный контроль над кодовой базой.
Michael Morrison Я спринг читаю в метро по дороге на работу для общего развития, прямо сплошняком по reference. Хоть и не пользуюсь, а кругозор расширяет ))
бля, теперь и я тут
ска теперь и я в вашем ебучем спринговом болоте🤦♂️
Где посмотреться второй часть?
39:32. А если метод ничего не возвращает?
норм) обычный жизненный цикл бина... по поводу eventLiteners конечно накручено я думаю это было просто сказано в образовательных целях сомневаюсь чтобы вот так извращались в рядовых проектах обычно все заканчивается на postProcessAfterInitialization
26:24 - "то ему придётся делать очень сложную работу..... " - Евшений Борисов, Вам удаётся совмещать стендап комеди, с обучением программированию, и программированием людей на выполнение очень сложной работы. Х))
Мёд для ушей.
сахар для кода
творог для костей
Синхронизация для потоков
Москва для москвичей
Скайрим для нордов
чет у меня нет там такого плагина в списке
Так и не понял как он "решил" проблему с Lazy в самом конце.
актуально в 2019?
не очень, хотя старьіх проектов с xml есть много еще
ruclips.net/video/nGfeSo52_8A/видео.html с 2:10
Igor Vasylevskyi
👍🏼👍🏼👍🏼👍🏼
Всегда актуально, технология же не меняется.
28:16 - Евгений Борисов, небольшая поправка -Первый подход - это циглиб (когда класс не имеет интерфейса или класс файнал(с ваших слов)), а второй это динамик прокси.
Вы просто 5ю секундами ранее говориле сначала о наследовании от классов, а потом как второй вариант от интерфейсов, и следом вы НАЗЫВАЕТЕ эти подходы как Динамик прокси и "вторым" Вы называетее циглиб.
Кидает налл поинтер. В поле BeanDefinition beanDefinition = factory.getBeanDefinition(name); factory = null
В чем проблема?
В мене був NPE через те що я в методі postProcessAfterInitialization(Object bean, String beanName) забув змінити return null на return bean. Можливо вам допоможе)
+Roman Chmeluk В общем-то упущение в дизайне фреймворка, что он не хэндлит такое. Тем более что IDE при генерации метода по умолчанию вставляют "return null;", и это всем известно.
не забыл ?
или AutowiredAnnotationBeanPostProcessor для лучшего усвоения материала )
вы не нашли ответ почему так происходит?
Не совсем то докладчик называет namespace-ами.
Дайте линк на картинку, которая в начале лекции. Которая "Спринг в картинках"
vk.com/doc4606_318090168
Этот документ был удалён из общего доступа.
2014.jpoint.ru/presentations/Borisov_spring.pdf
2014.jpoint.ru/presentations/Borisov_spring.pdf
top
айбернет😂👍👍👍👍
правильно будет hайбернет. букву h в русском алфавите не хватает.
А МОЖНО Оборватьь
Не знал что Гарик в Спринге шарит.
Вот бы скорость 0,9
На Харламова чем-то похож.
Бля как же тяжко понимать, вопросов по мере просмотра только больше
я тоже не понял сразу, пересмотрел раза 2, почитал - все уложилось) главное не бросать
11:37
мужик говорит в x2
Interesting; however, despite the fact, that I understand Russian well, you're talking way too fast, man.
payback speed = 0,5; subtitles enable?)
че
Молодцы ребята,очень интересный ролик.
Кто хочет почитать или просто угареть от еще одной теории о том что на земле лесов нет:
www.as-gard.com/30-metrovye-kusty
ты бесиш
Мда спринг очень гибок, даже слишком гибок, я лично предпочитаю больше EJB3.2 и очень стандартизированную архитектуру, блин зачем Оракл отдал JEE в Eclipse, ведь так всё было хорошо и стабильно, теперь клиенты всех хотят Спринг, теперь стринг надо всем джавистам учить.
че серьезно?) реально возникла проблема с тем что кастомеры говорят "не хотим ЖЕЕ"?)
Ну да иначе я бы этом здесь не писал
Я 10 лет работаю с явой, примерно лет 7 назад удалил spring из все проектов и слава богу. Перешел на Guice. Но на самом деле и Guice особо не нужен. Написал свой маленький Injector. Чем меньше чужого кода в твоих проектах, тем лучше. (Hibernate кстати тоже снес)
и как работаете з базой данных?
У современных баз данных mongodb, redis, google datastore, cassandra есть своей api, плюс я использую свои утилиты или можно библиотеки написанные другими людьми. В крайнем случае можно jdbc напрямую, через опять же свои обертки. Скорость, простота и предсказуемость решения важнее, чем мнимое удобство hibernate.
Smychagin Alexei вы один над своим проектом работаете, или остальные разработчики выучили ваш инжектор? а как же spring data, mvc, batch...
миллионы девов юзают спринг, а тут я один на белой лошади. А заказчик знает, что он оплачивает создание велосипедов за его деньги?
Предсказуемость реализации и собственный велосипед когда уже есть масса стандартных - это взаимоисключающие параграфы.
Для меня недоходчиво было от слова совсем, автор изъясняется на эльфийском, нужно смотреть каждое второе слово в словаре. Терминологии, которую объяснил вначале, раз-два и обчёлся.