Кажеться этот человек (Евгений Борисов) научил весь СНГ понимать спринг, сейчас эти вещи, что он говорит нужно само собой знать, а раньше наверно только крутые дядьки это знали и учили молодых где то, памятник при жизни ему , спасибо за ваши труды, буду рад смотреть новые конференции и всем рассказывать какой крутой мужик, этот Борисов Евгений
00:09:34 Singletons 00:10:25 Singletons Концепция и Паттерн 00:34:55 Тесты - Как поднять контекст только часть контекста - @ComponentScan(lazyInit = true) 00:46:05 Преимущество field injection над constructor через @Autowired 01:00:30 Open Closed principle broken 01:25:13 GenericBeanDefinition 01:37:18 Strategy and Command 02:00:08 Реализация механизма добавления новых бинов в контекст без перезапуска приложения 02:26:11 AOP 02:30:00 Динамическая реализация pointcut 02:39:44 Patterns which are easy with Spring
Черт, когда Борисову будут давать достаточно времени и не гнать уже! Человек творит! Это то же самое что вырезать из Властелина колец почти час времени, для чего, хер знает, люди пришли насладиться фильмом, а не на работу, что бы уйти побыстрее)
Тогда это будет самая длинная конференция в мире в одно лицо - т.к. Евгений в предмете прекрасно разбирается, любит этим знанием делиться и очень при этом увлекается, то остановится конференция, скорее всего, только после того как он сознание от истощения потеряет... Ну или жена заругает ))))
Евгений, с вашими скилами выступления, вам бы народ про DDD просвещать, то цены бы вам не было :-) Без сарказма, правда очень жду. Я как для себя открыл синюю книгу про DDD, так просто не могу понять почему люди до сих пор так мало знают про такие базовые, но очень важные идеи, которые попросту _всюду_ в микросервисах, о которых вы, кстати, упомянули в начале видео, но вскользь. А про синглтоны мы уже слышали от вас много раз, но все равно спасибо.
1:42:08 230 кейсов разбиваются на классы всего двумя тушками студентов-джунов и не за полгода, а за две ночи, потому что студенты обычно выбираются упоротые, которые ночь не спят и день не спят и не едят, а только кодят до полного выполнения задачи. Я помню, мне как-то выдавали задачи из техдолга в начале проекта, когда ещё работал джуном(правда тогда и понятия такого не было ещё, но суть та же) и там попадался switch внутри switch - это было весело разбивать и реально никто не сказал, что не надо упарываться, что народ работает неспеша, по 8-9 часов, что не нужно 2 дня без продыху кодить, но понял я это наверное лет через 5.
Нападки Евгения на синглтон меня смутили. intellij idea которую Евгений демонстрировал, сплошняком построена на классических синглтонах. Это видно из документации о том как плагины писать к идее. И все же, почему kotlin генерирует из object прямой singleton "анти-паттерн" (так же как и скала) и никому дела нет до этого? На этот прямой вопрос создатели kotlin лишь говорили, что следовали по пятам scala, а scala в свою очередь лишь только хотела заменить static на что-то более объектно-ориентированное, согласно моей дырявой памяти и моему гуглению года полтора назад. Для меня этот вопрос все еще открытый. Если практично подходить к проблеме, для меня классический синглтон имеет лишь следующие проблемы: * неявная зависимость (когда у меня неявная зависимость это spring transactional management, то это прозрачно для меня и для моей бизнес логики, но когда неявная зависимость это синглтон, который представляет собой бизнес идею, то это уже тяжело для моего тупого мозга, в особенности если это два-три-четыре жирных таких синглтона) * один класс на весь jvm (но ведь я хочу много инстансов в моих тестах, чтобы каждый тест был изолированным)
59:10 Я правильно понимаю, что тут ошибка? Когда spring выбирает beanName он пробегает по всем аннотациям бина и ищет там value, не только на аннотацию @Component смотрит
Евгений, у Вас со звуком проблема была из-за... Точнее проблема была не со звуком, а с производительностью, судя по количеству свёрнутый программ и тому, что при подключении зарядки проблема полностью исчезла. Если работаете под запись, лучше всегда ноут подключать к сети
хм вот lazy в тестах это то что я искал , у самого в проде для каждого теста есть свой конфиг и при добавлении новых бинов все конфиги падают и хоть убей в оф доках я не нашел как с этим люди борятся
40:46 вот может тогда не писать логику в сервисах, чтобы для её тестирования нужно было поднимать контекст? Плюс вопросец, а разве если у тебя будут разные конфигурации для тестов, то это будет плохо, потому что будут для тестов разные контексты подниматься. Вроде же контекст кешируется для тестов нет? А если это так и есть разные конфигурации контекстов, то это будет медленнее работать.
Те синглтоны и свичи - это бэд патерн, а дефолты со спринг аннотациями в интерфейсах - это образец сингл респонсобилити и вообще правильного дизайна? ;) А вообще спасибо за контент, понравился доклад.
Паттерны, принципы.....но по факту spring driven development никак не связанный с паттернами и принципами. Да стратегии, команды, но и те реализованые не по принципам SOLID. Я бы назвал доклад - как можно сделать кучу всего используя рефлексию и спринг. Подробный разбор в комментарии глупо писать, но я бы поспорил с 80% сказаного P.S Мне нравятся доклады Борисова, я люблю спринг, но конкретный доклад, на мой субьективный взгляд худший из его докладов. Автор начинает видить везде гвозди, имея спринг молоток.
И всё таки, default в интерфейсе сделан для того чтобы поддерживать старый код, когда необходимо расширить интерфейсы (а в старом коде вы этого не сделаете). Другими словами, дефолтовые методы в интерфейсах, для того чтобы расширять интерфейсы библиотек безопастно с точки зрения поддержки ранее написаного кода на них (как это делает java для коллекций добавляя stream функционал). Тут же явно мы не пишем библиотеку, а пишем конечный продукт. Поэтому в данном случае лучше было сделать абстрактный класс для само регистрации, а не костылить default метод (который ещё и со спрингом в придачу!).
в примере с инжектом листа есть вопрос (но я не знаю, как его задать, ибо не попасть мне в телегу): а есть ли разница, будет ли каждый элемент листа прототайпом или синглтоном? ибо, так как мы ищем по имени бина, а бинов могло быть уже создано несколько на момент инжекта, не упадет ли это всё из-за "multiple bean error блаблабла"?
Интересная идея с lazy component scan, при случае попробую для тестов (я как раз из тех, кто пишет конфигурацию и помечает мок бин @Primary =)). По поводу Знахарей и Лечения, тут очень похоже, что вы решаете задачи бизнес логики средствами фреймворка - когда Знахарь выбирает, какие виды лечений он применяет, то делать это спрингом - а тем более таким нестандартным способом - это немного не комильфо, на мой взгляд. Кстати, а в чем была бы проблема для знахаря просто сделать inject через конструктор и по списку с Лечениями сделать .filter { it::class in setOf(Баня::class, ...) } ?
в 2:00:00 у нас есть перевод list to map бинов, все классно работает. А как это протестировать. К примеру у меня 20 таких бинов. И как сделать чтобы они появились в тесте. Обычно я делаю @Spy. Но я хочу протестировать что все эти бины окажутся в map. Для этого можно конечно их всех перечислить, но тест получится бесполезным. Сейчас я придумал через reflection в тесте найти всех предков. Есть ли лучше решение?
точно такая же проблема возникла, через @Import({ExportServiceLevelOne.class, ExportServiceLevelTwo.class, ExportServiceLevelThee.class}) решил сначала, потом сделал свой ImportBeanDefinitionRegistrar через него по типу интерфейса от которого наследованы классы в мапе регистрировал бины и оно работало. В ролике есть. Но! Мне под каждого теперь рестрары писать? Тем более что они только для тестов нужны.. Да и в @Configuration классе он глаза мозолит.... Переписал регистрар с дженериками, но как его подключить и передать тип класса.. в @Import не понятно...
мой коммент со ссылкой на гитхаб попал в спам фильтр похоже(( админы канала, можете там перепрочитать и без ссылки вставить вопрос, а то я заново это всё не опишу, ну никак!
Увидев Кирилла, испугался, что опять будет парное выступление, к счастью, этого не произошло. Никого не хочу обидеть, но у Евгения лучше получается выступать соло.
Здравствуйте. Лекция очень полезная. Хотите ли немного критики от пенсионера, который в JAVA с 95 года? Когда она еще была только в Нетскэйепе? Складывается впечатление, что spring настолько крут, что тривиальные паттерны с ним невозможно реализовать без плясок с бубном, описанным в этой лекции. Безусловно это не так. И без спринга эти паттерны реализовывали. И как спринг смог этому помешать? Другой вопрос насколько помогает ? Просто автор почему то выбрал самый низкоуровневый способ реализации паттернов. Для того чтобы понять как работает спринг? Ок! Но ведь не только классы должны отвечать Single Responsibility Principal. В итоге из за деревьев леса плохо видно. И такой еще вопрос. Зачем похоронили XML context? Ведь все, что автор здесь рассказывал, на XML сделать можно "левой ногой". List. Map. Для удобства программистов? С каких пор удобство программистов, стало мерилом качества продукта, вместо удобства пользователей?Я не думаю, что для пользователей (поддержка, администраторы и т.п.) конфигурация на JAVA удобней конфигурации XML. Не говоря уже об конфигурации распыленной в виде аннотаций по куче java файлов. Ok, если вы делаете конфигурацию на JAVA, она должна быть управляемой другой конфигурацией в каком то формате в удобной для пользователе виде. Вы уверены, что программисты это делают?
Интересный акцент у Борисова. Удивляет что он вместо приложения говорит - аппликация. Тут у меня, большого любителя искусств начинается kernel panic головного мозга :)
@Repository надо если модульный проект, и слой репозиториев лежит в отдельном модуле Возможно я что то не так делал, но без @Repository интерфейсы CrudRepository не работали. Поправьте если не прав
@Bean public CustomPointcut() { return new CustomPointcut(); } // Same applies to Exception.... @Bean public DefaultPointcutAdvisor defaultPointcutAdvisor(final CustomPointcut customPointcut, final ExceptionHandlerAspect exceptionHandlerAspect ) { return new Default...(customPointcut, exceptionHandlerAspect ); } In this case, you do not call initialization methods, but instead use already created beans.
When you call configuration methods, you also get beans. Because configuration is wrapped with proxy (cglib proxy) and any call to method marked as @Bean returns bean instead.
Кажеться этот человек (Евгений Борисов) научил весь СНГ понимать спринг, сейчас эти вещи, что он говорит нужно само собой знать, а раньше наверно только крутые дядьки это знали и учили молодых где то, памятник при жизни ему , спасибо за ваши труды, буду рад смотреть новые конференции и всем рассказывать какой крутой мужик, этот Борисов Евгений
00:09:34 Singletons
00:10:25 Singletons Концепция и Паттерн
00:34:55 Тесты - Как поднять контекст только часть контекста - @ComponentScan(lazyInit = true)
00:46:05 Преимущество field injection над constructor через @Autowired
01:00:30 Open Closed principle broken
01:25:13 GenericBeanDefinition
01:37:18 Strategy and Command
02:00:08 Реализация механизма добавления новых бинов в контекст без перезапуска приложения
02:26:11 AOP
02:30:00 Динамическая реализация pointcut
02:39:44 Patterns which are easy with Spring
Вижу Евгения - ставлю лайк
вижу лайк для Евгения - ставлю лайк )
@@necromancer151 вижу лайк лайка для Евгения - ставлю лайк)
Пишите тогда сервис, который будет собирать деревом все комментарии где используется слово лайк, и курсивно его обрабатывать...
ну вы поняли)))
Вижу лайк ради лайка - ставлю дизлайк.
Сижу работаю из дома, фоном переслушиваю лекции Евгения. И тут на 51:00 такая прям совсем домашняя атмосфера :) Улыбнуло.
Обычно слушаю доклады на скорости 1.25, но Евгения приходится ставить на 0.75 :))
слушаю на 1.75 и норм
Смотрю на х3, как и все другие видосы, нормально
слушаю на х9, параллельно сижу на дейлике
Икона, чем больше работаю, тем больше понимаю из конференций Борисова. ❤
Черт, когда Борисову будут давать достаточно времени и не гнать уже! Человек творит! Это то же самое что вырезать из Властелина колец почти час времени, для чего, хер знает, люди пришли насладиться фильмом, а не на работу, что бы уйти побыстрее)
Уже дошло до того, что на интервью в ответ на вопрос говоришь про бинпостпроцессор и Борисова - и интервьювер доволен
И что? Неадекватный интервьюер значит. Не Евгений же в этом виноват.
смотрится на одном дыхании, Женя заряжает своей энергией. класс!!!
6:57 - старт
9:36 старт
Как всегда круто. Спасибо Евгений за доклад
Божественно, особенно вторая часть доклада. Огромное спасибо организаторам
Доклад - пушка/бобма!💣
Спасибо большое, Евгений & Co🤝
"Юль, батарея!" на 0:51:02
covid
Евгений, как всегда на высоте, спасибо. Вот бы конференцию провели, где он не был бы ограничен по времени.
Тогда это будет самая длинная конференция в мире в одно лицо - т.к. Евгений в предмете прекрасно разбирается, любит этим знанием делиться и очень при этом увлекается, то остановится конференция, скорее всего, только после того как он сознание от истощения потеряет... Ну или жена заругает ))))
Евгений, с вашими скилами выступления, вам бы народ про DDD просвещать, то цены бы вам не было :-) Без сарказма, правда очень жду.
Я как для себя открыл синюю книгу про DDD, так просто не могу понять почему люди до сих пор так мало знают про такие базовые, но очень важные идеи, которые попросту _всюду_ в микросервисах, о которых вы, кстати, упомянули в начале видео, но вскользь. А про синглтоны мы уже слышали от вас много раз, но все равно спасибо.
умник чтоли? сам бери и просвещай, я 100% уверен что ты по DDD и TDD не пишешь
DDD == domain driven?
Тоже очень интересна эта тема
Начало с 6:55
Фонд золотых цитат: "Все что угодно может быть бесконечно" )))))) Евгений, каждый доклад очень интересно слушать, спасибо!
1:42:08 230 кейсов разбиваются на классы всего двумя тушками студентов-джунов и не за полгода, а за две ночи, потому что студенты обычно выбираются упоротые, которые ночь не спят и день не спят и не едят, а только кодят до полного выполнения задачи. Я помню, мне как-то выдавали задачи из техдолга в начале проекта, когда ещё работал джуном(правда тогда и понятия такого не было ещё, но суть та же) и там попадался switch внутри switch - это было весело разбивать и реально никто не сказал, что не надо упарываться, что народ работает неспеша, по 8-9 часов, что не нужно 2 дня без продыху кодить, но понял я это наверное лет через 5.
Евгений и ребята , как всегда огромное спасибо за отличный доклад 😊🥳
Нападки Евгения на синглтон меня смутили. intellij idea которую Евгений демонстрировал, сплошняком построена на классических синглтонах. Это видно из документации о том как плагины писать к идее.
И все же, почему kotlin генерирует из object прямой singleton "анти-паттерн" (так же как и скала) и никому дела нет до этого? На этот прямой вопрос создатели kotlin лишь говорили, что следовали по пятам scala, а scala в свою очередь лишь только хотела заменить static на что-то более объектно-ориентированное, согласно моей дырявой памяти и моему гуглению года полтора назад. Для меня этот вопрос все еще открытый.
Если практично подходить к проблеме, для меня классический синглтон имеет лишь следующие проблемы:
* неявная зависимость (когда у меня неявная зависимость это spring transactional management, то это прозрачно для меня и для моей бизнес логики, но когда неявная зависимость это синглтон, который представляет собой бизнес идею, то это уже тяжело для моего тупого мозга, в особенности если это два-три-четыре жирных таких синглтона)
* один класс на весь jvm (но ведь я хочу много инстансов в моих тестах, чтобы каждый тест был изолированным)
59:10 Я правильно понимаю, что тут ошибка? Когда spring выбирает beanName он пробегает по всем аннотациям бина и ищет там value, не только на аннотацию @Component смотрит
Обожаю Евгения, почти как бедкомедина
Евгений, у Вас со звуком проблема была из-за... Точнее проблема была не со звуком, а с производительностью, судя по количеству свёрнутый программ и тому, что при подключении зарядки проблема полностью исчезла. Если работаете под запись, лучше всегда ноут подключать к сети
Полностью посмотрел и законспектировал самые интересные места. Огромное спасибо! Однозначно лайк! :-)
Привет! Остались конспекты?
Спасибо, Евгений, как всегда интересно.
47:30 а что если объявить конструктор ломбока в спринге антипаттерном
хм вот lazy в тестах это то что я искал , у самого в проде для каждого теста есть свой конфиг и при добавлении новых бинов все конфиги падают и хоть убей в оф доках я не нашел как с этим люди борятся
@InjectList({Баня.class, Водка.class, Гармонь.class, Лосоль.class})
super.Девки
40:46 вот может тогда не писать логику в сервисах, чтобы для её тестирования нужно было поднимать контекст? Плюс вопросец, а разве если у тебя будут разные конфигурации для тестов, то это будет плохо, потому что будут для тестов разные контексты подниматься. Вроде же контекст кешируется для тестов нет? А если это так и есть разные конфигурации контекстов, то это будет медленнее работать.
Как на всё это написать тесты?
да пздц)))
Как всегда прекрасная дотошность 🙏🏻🎉
В конце 2022 с ностальгией вспоминаются ковидные проблемы 2020 года, какое было прекрасное время
Опа, супер - будет, что глянуть на выходных. Лайк сразу поставлю
1:03:40 А почему нельзя было сделать пустой интерфейс и наследоваться им от Лечения назвав Алкоголь и не указать его в List?
Отвечая на вопрос в описании: все что есть в докладе применяю. Этот доклад возможно будет хорошим стартом для кого-то. Евгений как всегда на высоте.
отличная перезентация. почерпнул много интересного. Епаму привет! ) Жаль не на англ - поделился бы с коллегами
Женя как всегда крут ) Спасибо!
1:47:09
- Что обычно делает дефолтный целитель?
- Он говорит UnsupportedOperationException.
Предлагаю называть концепцию "синглтон" "сингл инстансом", чтобы устранить путаницу. При этом синглтон это одна из имплементаций синг инстанса.
наушники sony wh-1000xm3?
Отличный доклад, спасибо!
Те синглтоны и свичи - это бэд патерн, а дефолты со спринг аннотациями в интерфейсах - это образец сингл респонсобилити и вообще правильного дизайна? ;) А вообще спасибо за контент, понравился доклад.
мастхэвный доклад для тех, кто работает со спрингом
уже скинул его всем своим друзьям-программистам
Паттерны, принципы.....но по факту spring driven development никак не связанный с паттернами и принципами. Да стратегии, команды, но и те реализованые не по принципам SOLID. Я бы назвал доклад - как можно сделать кучу всего используя рефлексию и спринг. Подробный разбор в комментарии глупо писать, но я бы поспорил с 80% сказаного
P.S Мне нравятся доклады Борисова, я люблю спринг, но конкретный доклад, на мой субьективный взгляд худший из его докладов. Автор начинает видить везде гвозди, имея спринг молоток.
И всё таки, default в интерфейсе сделан для того чтобы поддерживать старый код, когда необходимо расширить интерфейсы (а в старом коде вы этого не сделаете). Другими словами, дефолтовые методы в интерфейсах, для того чтобы расширять интерфейсы библиотек безопастно с точки зрения поддержки ранее написаного кода на них (как это делает java для коллекций добавляя stream функционал). Тут же явно мы не пишем библиотеку, а пишем конечный продукт. Поэтому в данном случае лучше было сделать абстрактный класс для само регистрации, а не костылить default метод (который ещё и со спрингом в придачу!).
А есть ли Spring Patterns для детей?
А почему спринг постоянно выдает предупреждение на @Autowired? Всегда пишет, ну, дружок, ты давай-ка лучше через конструктор это сделай.
Потому что через конструктор бест практис
@@АлексейФ-д9б очень спорный бест практис. Не вижу существенных плюсов, кроме fail fast, да и не такая частая проблема - отсутствие нужного бина
Спасибо, jeka borisov!
16:07 о каком докладе идёт речь? Что за доклад о том, что "мы в спринге похоронены"?
37:35 Подтверждаю, все так и происходит.
в примере с инжектом листа есть вопрос (но я не знаю, как его задать, ибо не попасть мне в телегу): а есть ли разница, будет ли каждый элемент листа прототайпом или синглтоном? ибо, так как мы ищем по имени бина, а бинов могло быть уже создано несколько на момент инжекта, не упадет ли это всё из-за "multiple bean error блаблабла"?
Тема "своя Spring Data" интересна! в стандартном спринге не поддерживаются графовые БД ...
Давно используем Spring Data Neo4j
Спасибо огромное! Очень круто!
Евгений, спасибо ) очень интересно
Интересная идея с lazy component scan, при случае попробую для тестов (я как раз из тех, кто пишет конфигурацию и помечает мок бин @Primary =)). По поводу Знахарей и Лечения, тут очень похоже, что вы решаете задачи бизнес логики средствами фреймворка - когда Знахарь выбирает, какие виды лечений он применяет, то делать это спрингом - а тем более таким нестандартным способом - это немного не комильфо, на мой взгляд. Кстати, а в чем была бы проблема для знахаря просто сделать inject через конструктор и по списку с Лечениями сделать .filter { it::class in setOf(Баня::class, ...) } ?
в 2:00:00 у нас есть перевод list to map бинов, все классно работает. А как это протестировать. К примеру у меня 20 таких бинов. И как сделать чтобы они появились в тесте. Обычно я делаю @Spy. Но я хочу протестировать что все эти бины окажутся в map. Для этого можно конечно их всех перечислить, но тест получится бесполезным. Сейчас я придумал через reflection в тесте найти всех предков. Есть ли лучше решение?
точно такая же проблема возникла, через
@Import({ExportServiceLevelOne.class, ExportServiceLevelTwo.class, ExportServiceLevelThee.class})
решил сначала, потом сделал свой ImportBeanDefinitionRegistrar через него по типу интерфейса от которого наследованы классы в мапе регистрировал бины и оно работало. В ролике есть. Но! Мне под каждого теперь рестрары писать? Тем более что они только для тестов нужны.. Да и в @Configuration классе он глаза мозолит....
Переписал регистрар с дженериками, но как его подключить и передать тип класса.. в @Import не понятно...
В сотый раз про синглетон , зачем , можно же про что-то более актуальное поговорить в 2020.
Может потому что бесплатно?) Все более актуальное - платно)
@@АлексейФ-д9б где купить?
00:59:24 - нашествие НЛО в вебку Кирилла
47:21 еще при field injection используется reflection, что не очень хорошо
@Lazy надо ставить над сервисом и над местом инъекции тогда будет работать
мой коммент со ссылкой на гитхаб попал в спам фильтр похоже((
админы канала, можете там перепрочитать и без ссылки вставить вопрос, а то я заново это всё не опишу, ну никак!
воу воу, а мне как раз прошлый доклад по спринг паттернам оказался недостаточным)
Увидев Кирилла, испугался, что опять будет парное выступление, к счастью, этого не произошло.
Никого не хочу обидеть, но у Евгения лучше получается выступать соло.
Ленивое сканирование в продакшене может помочь, если из-за проблем в инфраструктуре какой-то бин не сможет инициализироваться.
Ну всё - работа встала!!!
Please explain in English video
Хорошо но мало (
Евгения после этого вебинара предадут анафеме ))))
Здравствуйте. Лекция очень полезная.
Хотите ли немного критики от пенсионера, который в JAVA с 95 года? Когда она еще была только в Нетскэйепе?
Складывается впечатление, что spring настолько крут, что тривиальные паттерны с ним невозможно реализовать без плясок с бубном, описанным в этой лекции.
Безусловно это не так. И без спринга эти паттерны реализовывали. И как спринг смог этому помешать? Другой вопрос насколько помогает ? Просто автор почему то выбрал самый низкоуровневый способ реализации паттернов. Для того чтобы понять как работает спринг? Ок! Но ведь не только классы должны отвечать Single Responsibility Principal.
В итоге из за деревьев леса плохо видно.
И такой еще вопрос. Зачем похоронили XML context? Ведь все, что автор здесь рассказывал, на XML сделать можно "левой ногой". List. Map.
Для удобства программистов?
С каких пор удобство программистов, стало мерилом качества продукта, вместо удобства пользователей?Я не думаю, что для пользователей (поддержка, администраторы и т.п.) конфигурация на JAVA удобней конфигурации XML. Не говоря уже об конфигурации распыленной в виде аннотаций по куче java файлов.
Ok, если вы делаете конфигурацию на JAVA, она должна быть управляемой другой конфигурацией в каком то формате в удобной для пользователе виде. Вы уверены, что программисты это делают?
Интересный акцент у Борисова. Удивляет что он вместо приложения говорит - аппликация. Тут у меня, большого любителя искусств начинается kernel panic головного мозга :)
Это Израильский акцент :) на иврите не говорят "приложение", говорят "апликация" :)
Тодд Говард и Кирилл Толкачев это один человек?
последняя секунда:
Раунд!
Думаю: Надо же у Евгения речь обычная стала. А оказывается стояла скорость 0.75.
Подарите Борисову Мак таких досадных помех не будет)
InhectList не нарушает разве OCP?
Евгений, на 26:33 опечатка на слайде "speacial"
@Repository надо если модульный проект, и слой репозиториев лежит в отдельном модуле
Возможно я что то не так делал, но без @Repository интерфейсы CrudRepository не работали. Поправьте если не прав
59:24
приветики
01:00:30
В магазах вдруг пропал Синглтон и я понимаю кто виноват), скрытая реклама?
Эх) сколько живу работаю все эти паттерны все больше превращаются в антипаттерны)
@Bean
public CustomPointcut() {
return new CustomPointcut();
}
// Same applies to Exception....
@Bean
public DefaultPointcutAdvisor defaultPointcutAdvisor(final CustomPointcut customPointcut, final ExceptionHandlerAspect exceptionHandlerAspect ) {
return new Default...(customPointcut, exceptionHandlerAspect );
}
In this case, you do not call initialization methods, but instead use already created beans.
When you call configuration methods, you also get beans. Because configuration is wrapped with proxy (cglib proxy) and any call to method marked as @Bean returns bean instead.
Всё здорово, но почему столько грамматических ошибок и опечаток в слайдах?
Потому что делал как студент, в ночь перед экзаменом.
2020 год, а звук нормально записать не можем
Patient это что?
Женя крут🔥👍💪
Для меня Женбка - оргазм с первого раза)
3 часа на одном дыхании
никогда не пишите такой код.
иногда @Lazy(false) тоже турба
Мда, сингл респонсибилити, а потом вдруг лукап по имени филда...
59:20
теперь я тоже буду говорить синглЬтон )
"сингАЛЬтон"
@@stanislavkuzmin2611 спасибо. точно!
чёж тормозит чёж тормозит - оказалось зарядка не включена. Вроде большой уже, а не знает что ноутбуки медленней работают без питания
Разбейте по блокам на ютубе. Пожалуйста.
хмм а материальчик то бу....
Е.Борисов, xml умер 🤣 ну, ну
top
Женя, че похудел так? Корона и коронтин??