Кажеться этот человек (Евгений Борисов) научил весь СНГ понимать спринг, сейчас эти вещи, что он говорит нужно само собой знать, а раньше наверно только крутые дядьки это знали и учили молодых где то, памятник при жизни ему , спасибо за ваши труды, буду рад смотреть новые конференции и всем рассказывать какой крутой мужик, этот Борисов Евгений
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 смотрит
Паттерны, принципы.....но по факту spring driven development никак не связанный с паттернами и принципами. Да стратегии, команды, но и те реализованые не по принципам SOLID. Я бы назвал доклад - как можно сделать кучу всего используя рефлексию и спринг. Подробный разбор в комментарии глупо писать, но я бы поспорил с 80% сказаного P.S Мне нравятся доклады Борисова, я люблю спринг, но конкретный доклад, на мой субьективный взгляд худший из его докладов. Автор начинает видить везде гвозди, имея спринг молоток.
Те синглтоны и свичи - это бэд патерн, а дефолты со спринг аннотациями в интерфейсах - это образец сингл респонсобилити и вообще правильного дизайна? ;) А вообще спасибо за контент, понравился доклад.
И всё таки, default в интерфейсе сделан для того чтобы поддерживать старый код, когда необходимо расширить интерфейсы (а в старом коде вы этого не сделаете). Другими словами, дефолтовые методы в интерфейсах, для того чтобы расширять интерфейсы библиотек безопастно с точки зрения поддержки ранее написаного кода на них (как это делает java для коллекций добавляя stream функционал). Тут же явно мы не пишем библиотеку, а пишем конечный продукт. Поэтому в данном случае лучше было сделать абстрактный класс для само регистрации, а не костылить default метод (который ещё и со спрингом в придачу!).
Увидев Кирилла, испугался, что опять будет парное выступление, к счастью, этого не произошло. Никого не хочу обидеть, но у Евгения лучше получается выступать соло.
40:46 вот может тогда не писать логику в сервисах, чтобы для её тестирования нужно было поднимать контекст? Плюс вопросец, а разве если у тебя будут разные конфигурации для тестов, то это будет плохо, потому что будут для тестов разные контексты подниматься. Вроде же контекст кешируется для тестов нет? А если это так и есть разные конфигурации контекстов, то это будет медленнее работать.
хм вот lazy в тестах это то что я искал , у самого в проде для каждого теста есть свой конфиг и при добавлении новых бинов все конфиги падают и хоть убей в оф доках я не нашел как с этим люди борятся
в примере с инжектом листа есть вопрос (но я не знаю, как его задать, ибо не попасть мне в телегу): а есть ли разница, будет ли каждый элемент листа прототайпом или синглтоном? ибо, так как мы ищем по имени бина, а бинов могло быть уже создано несколько на момент инжекта, не упадет ли это всё из-за "multiple bean error блаблабла"?
Интересный акцент у Борисова. Удивляет что он вместо приложения говорит - аппликация. Тут у меня, большого любителя искусств начинается kernel panic головного мозга :)
Интересная идея с lazy component scan, при случае попробую для тестов (я как раз из тех, кто пишет конфигурацию и помечает мок бин @Primary =)). По поводу Знахарей и Лечения, тут очень похоже, что вы решаете задачи бизнес логики средствами фреймворка - когда Знахарь выбирает, какие виды лечений он применяет, то делать это спрингом - а тем более таким нестандартным способом - это немного не комильфо, на мой взгляд. Кстати, а в чем была бы проблема для знахаря просто сделать inject через конструктор и по списку с Лечениями сделать .filter { it::class in setOf(Баня::class, ...) } ?
Здравствуйте. Лекция очень полезная. Хотите ли немного критики от пенсионера, который в JAVA с 95 года? Когда она еще была только в Нетскэйепе? Складывается впечатление, что spring настолько крут, что тривиальные паттерны с ним невозможно реализовать без плясок с бубном, описанным в этой лекции. Безусловно это не так. И без спринга эти паттерны реализовывали. И как спринг смог этому помешать? Другой вопрос насколько помогает ? Просто автор почему то выбрал самый низкоуровневый способ реализации паттернов. Для того чтобы понять как работает спринг? Ок! Но ведь не только классы должны отвечать Single Responsibility Principal. В итоге из за деревьев леса плохо видно. И такой еще вопрос. Зачем похоронили XML context? Ведь все, что автор здесь рассказывал, на XML сделать можно "левой ногой". List. Map. Для удобства программистов? С каких пор удобство программистов, стало мерилом качества продукта, вместо удобства пользователей?Я не думаю, что для пользователей (поддержка, администраторы и т.п.) конфигурация на JAVA удобней конфигурации XML. Не говоря уже об конфигурации распыленной в виде аннотаций по куче java файлов. Ok, если вы делаете конфигурацию на JAVA, она должна быть управляемой другой конфигурацией в каком то формате в удобной для пользователе виде. Вы уверены, что программисты это делают?
мой коммент со ссылкой на гитхаб попал в спам фильтр похоже(( админы канала, можете там перепрочитать и без ссылки вставить вопрос, а то я заново это всё не опишу, ну никак!
в 2:00:00 у нас есть перевод list to map бинов, все классно работает. А как это протестировать. К примеру у меня 20 таких бинов. И как сделать чтобы они появились в тесте. Обычно я делаю @Spy. Но я хочу протестировать что все эти бины окажутся в map. Для этого можно конечно их всех перечислить, но тест получится бесполезным. Сейчас я придумал через reflection в тесте найти всех предков. Есть ли лучше решение?
точно такая же проблема возникла, через @Import({ExportServiceLevelOne.class, ExportServiceLevelTwo.class, ExportServiceLevelThee.class}) решил сначала, потом сделал свой ImportBeanDefinitionRegistrar через него по типу интерфейса от которого наследованы классы в мапе регистрировал бины и оно работало. В ролике есть. Но! Мне под каждого теперь рестрары писать? Тем более что они только для тестов нужны.. Да и в @Configuration классе он глаза мозолит.... Переписал регистрар с дженериками, но как его подключить и передать тип класса.. в @Import не понятно...
@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 вижу лайк лайка для Евгения - ставлю лайк)
Пишите тогда сервис, который будет собирать деревом все комментарии где используется слово лайк, и курсивно его обрабатывать...
ну вы поняли)))
Вижу лайк ради лайка - ставлю дизлайк.
Обычно слушаю доклады на скорости 1.25, но Евгения приходится ставить на 0.75 :))
слушаю на 1.75 и норм
Смотрю на х3, как и все другие видосы, нормально
слушаю на х9, параллельно сижу на дейлике
Как всегда круто. Спасибо Евгений за доклад
Доклад - пушка/бобма!💣
Спасибо большое, Евгений & Co🤝
Сижу работаю из дома, фоном переслушиваю лекции Евгения. И тут на 51:00 такая прям совсем домашняя атмосфера :) Улыбнуло.
смотрится на одном дыхании, Женя заряжает своей энергией. класс!!!
Божественно, особенно вторая часть доклада. Огромное спасибо организаторам
Евгений, как всегда на высоте, спасибо. Вот бы конференцию провели, где он не был бы ограничен по времени.
Тогда это будет самая длинная конференция в мире в одно лицо - т.к. Евгений в предмете прекрасно разбирается, любит этим знанием делиться и очень при этом увлекается, то остановится конференция, скорее всего, только после того как он сознание от истощения потеряет... Ну или жена заругает ))))
Евгений, с вашими скилами выступления, вам бы народ про DDD просвещать, то цены бы вам не было :-) Без сарказма, правда очень жду.
Я как для себя открыл синюю книгу про DDD, так просто не могу понять почему люди до сих пор так мало знают про такие базовые, но очень важные идеи, которые попросту _всюду_ в микросервисах, о которых вы, кстати, упомянули в начале видео, но вскользь. А про синглтоны мы уже слышали от вас много раз, но все равно спасибо.
умник чтоли? сам бери и просвещай, я 100% уверен что ты по DDD и TDD не пишешь
DDD == domain driven?
Тоже очень интересна эта тема
Полностью посмотрел и законспектировал самые интересные места. Огромное спасибо! Однозначно лайк! :-)
Фонд золотых цитат: "Все что угодно может быть бесконечно" )))))) Евгений, каждый доклад очень интересно слушать, спасибо!
6:57 - старт
9:36 старт
"Юль, батарея!" на 0:51:02
covid
1:42:08 230 кейсов разбиваются на классы всего двумя тушками студентов-джунов и не за полгода, а за две ночи, потому что студенты обычно выбираются упоротые, которые ночь не спят и день не спят и не едят, а только кодят до полного выполнения задачи. Я помню, мне как-то выдавали задачи из техдолга в начале проекта, когда ещё работал джуном(правда тогда и понятия такого не было ещё, но суть та же) и там попадался switch внутри switch - это было весело разбивать и реально никто не сказал, что не надо упарываться, что народ работает неспеша, по 8-9 часов, что не нужно 2 дня без продыху кодить, но понял я это наверное лет через 5.
Евгений и ребята , как всегда огромное спасибо за отличный доклад 😊🥳
Обожаю Евгения, почти как бедкомедина
Евгений, у Вас со звуком проблема была из-за... Точнее проблема была не со звуком, а с производительностью, судя по количеству свёрнутый программ и тому, что при подключении зарядки проблема полностью исчезла. Если работаете под запись, лучше всегда ноут подключать к сети
В конце 2022 с ностальгией вспоминаются ковидные проблемы 2020 года, какое было прекрасное время
Как всегда прекрасная дотошность 🙏🏻🎉
Спасибо, Евгений, как всегда интересно.
Предлагаю называть концепцию "синглтон" "сингл инстансом", чтобы устранить путаницу. При этом синглтон это одна из имплементаций синг инстанса.
Нападки Евгения на синглтон меня смутили. intellij idea которую Евгений демонстрировал, сплошняком построена на классических синглтонах. Это видно из документации о том как плагины писать к идее.
И все же, почему kotlin генерирует из object прямой singleton "анти-паттерн" (так же как и скала) и никому дела нет до этого? На этот прямой вопрос создатели kotlin лишь говорили, что следовали по пятам scala, а scala в свою очередь лишь только хотела заменить static на что-то более объектно-ориентированное, согласно моей дырявой памяти и моему гуглению года полтора назад. Для меня этот вопрос все еще открытый.
Если практично подходить к проблеме, для меня классический синглтон имеет лишь следующие проблемы:
* неявная зависимость (когда у меня неявная зависимость это spring transactional management, то это прозрачно для меня и для моей бизнес логики, но когда неявная зависимость это синглтон, который представляет собой бизнес идею, то это уже тяжело для моего тупого мозга, в особенности если это два-три-четыре жирных таких синглтона)
* один класс на весь jvm (но ведь я хочу много инстансов в моих тестах, чтобы каждый тест был изолированным)
59:10 Я правильно понимаю, что тут ошибка? Когда spring выбирает beanName он пробегает по всем аннотациям бина и ищет там value, не только на аннотацию @Component смотрит
отличная перезентация. почерпнул много интересного. Епаму привет! ) Жаль не на англ - поделился бы с коллегами
Опа, супер - будет, что глянуть на выходных. Лайк сразу поставлю
Отвечая на вопрос в описании: все что есть в докладе применяю. Этот доклад возможно будет хорошим стартом для кого-то. Евгений как всегда на высоте.
Паттерны, принципы.....но по факту spring driven development никак не связанный с паттернами и принципами. Да стратегии, команды, но и те реализованые не по принципам SOLID. Я бы назвал доклад - как можно сделать кучу всего используя рефлексию и спринг. Подробный разбор в комментарии глупо писать, но я бы поспорил с 80% сказаного
P.S Мне нравятся доклады Борисова, я люблю спринг, но конкретный доклад, на мой субьективный взгляд худший из его докладов. Автор начинает видить везде гвозди, имея спринг молоток.
Женя как всегда крут ) Спасибо!
Начало с 6:55
Те синглтоны и свичи - это бэд патерн, а дефолты со спринг аннотациями в интерфейсах - это образец сингл респонсобилити и вообще правильного дизайна? ;) А вообще спасибо за контент, понравился доклад.
И всё таки, default в интерфейсе сделан для того чтобы поддерживать старый код, когда необходимо расширить интерфейсы (а в старом коде вы этого не сделаете). Другими словами, дефолтовые методы в интерфейсах, для того чтобы расширять интерфейсы библиотек безопастно с точки зрения поддержки ранее написаного кода на них (как это делает java для коллекций добавляя stream функционал). Тут же явно мы не пишем библиотеку, а пишем конечный продукт. Поэтому в данном случае лучше было сделать абстрактный класс для само регистрации, а не костылить default метод (который ещё и со спрингом в придачу!).
Отличный доклад, спасибо!
Увидев Кирилла, испугался, что опять будет парное выступление, к счастью, этого не произошло.
Никого не хочу обидеть, но у Евгения лучше получается выступать соло.
40:46 вот может тогда не писать логику в сервисах, чтобы для её тестирования нужно было поднимать контекст? Плюс вопросец, а разве если у тебя будут разные конфигурации для тестов, то это будет плохо, потому что будут для тестов разные контексты подниматься. Вроде же контекст кешируется для тестов нет? А если это так и есть разные конфигурации контекстов, то это будет медленнее работать.
хм вот lazy в тестах это то что я искал , у самого в проде для каждого теста есть свой конфиг и при добавлении новых бинов все конфиги падают и хоть убей в оф доках я не нашел как с этим люди борятся
В сотый раз про синглетон , зачем , можно же про что-то более актуальное поговорить в 2020.
Может потому что бесплатно?) Все более актуальное - платно)
@@АлексейФ-д9б где купить?
Спасибо, jeka borisov!
@InjectList({Баня.class, Водка.class, Гармонь.class, Лосоль.class})
super.Девки
мастхэвный доклад для тех, кто работает со спрингом
уже скинул его всем своим друзьям-программистам
воу воу, а мне как раз прошлый доклад по спринг паттернам оказался недостаточным)
Спасибо огромное! Очень круто!
47:30 а что если объявить конструктор ломбока в спринге антипаттерном
Евгений, спасибо ) очень интересно
1:03:40 А почему нельзя было сделать пустой интерфейс и наследоваться им от Лечения назвав Алкоголь и не указать его в List?
Как на всё это написать тесты?
да пздц)))
наушники sony wh-1000xm3?
Тема "своя Spring Data" интересна! в стандартном спринге не поддерживаются графовые БД ...
Давно используем Spring Data Neo4j
в примере с инжектом листа есть вопрос (но я не знаю, как его задать, ибо не попасть мне в телегу): а есть ли разница, будет ли каждый элемент листа прототайпом или синглтоном? ибо, так как мы ищем по имени бина, а бинов могло быть уже создано несколько на момент инжекта, не упадет ли это всё из-за "multiple bean error блаблабла"?
@Lazy надо ставить над сервисом и над местом инъекции тогда будет работать
Ну всё - работа встала!!!
Ленивое сканирование в продакшене может помочь, если из-за проблем в инфраструктуре какой-то бин не сможет инициализироваться.
Интересный акцент у Борисова. Удивляет что он вместо приложения говорит - аппликация. Тут у меня, большого любителя искусств начинается kernel panic головного мозга :)
Это Израильский акцент :) на иврите не говорят "приложение", говорят "апликация" :)
Интересная идея с lazy component scan, при случае попробую для тестов (я как раз из тех, кто пишет конфигурацию и помечает мок бин @Primary =)). По поводу Знахарей и Лечения, тут очень похоже, что вы решаете задачи бизнес логики средствами фреймворка - когда Знахарь выбирает, какие виды лечений он применяет, то делать это спрингом - а тем более таким нестандартным способом - это немного не комильфо, на мой взгляд. Кстати, а в чем была бы проблема для знахаря просто сделать inject через конструктор и по списку с Лечениями сделать .filter { it::class in setOf(Баня::class, ...) } ?
А почему спринг постоянно выдает предупреждение на @Autowired? Всегда пишет, ну, дружок, ты давай-ка лучше через конструктор это сделай.
Потому что через конструктор бест практис
@@АлексейФ-д9б очень спорный бест практис. Не вижу существенных плюсов, кроме fail fast, да и не такая частая проблема - отсутствие нужного бина
1:47:09
- Что обычно делает дефолтный целитель?
- Он говорит UnsupportedOperationException.
А есть ли Spring Patterns для детей?
последняя секунда:
Раунд!
16:07 о каком докладе идёт речь? Что за доклад о том, что "мы в спринге похоронены"?
00:59:24 - нашествие НЛО в вебку Кирилла
Евгения после этого вебинара предадут анафеме ))))
Здравствуйте. Лекция очень полезная.
Хотите ли немного критики от пенсионера, который в JAVA с 95 года? Когда она еще была только в Нетскэйепе?
Складывается впечатление, что spring настолько крут, что тривиальные паттерны с ним невозможно реализовать без плясок с бубном, описанным в этой лекции.
Безусловно это не так. И без спринга эти паттерны реализовывали. И как спринг смог этому помешать? Другой вопрос насколько помогает ? Просто автор почему то выбрал самый низкоуровневый способ реализации паттернов. Для того чтобы понять как работает спринг? Ок! Но ведь не только классы должны отвечать Single Responsibility Principal.
В итоге из за деревьев леса плохо видно.
И такой еще вопрос. Зачем похоронили XML context? Ведь все, что автор здесь рассказывал, на XML сделать можно "левой ногой". List. Map.
Для удобства программистов?
С каких пор удобство программистов, стало мерилом качества продукта, вместо удобства пользователей?Я не думаю, что для пользователей (поддержка, администраторы и т.п.) конфигурация на JAVA удобней конфигурации XML. Не говоря уже об конфигурации распыленной в виде аннотаций по куче java файлов.
Ok, если вы делаете конфигурацию на JAVA, она должна быть управляемой другой конфигурацией в каком то формате в удобной для пользователе виде. Вы уверены, что программисты это делают?
мой коммент со ссылкой на гитхаб попал в спам фильтр похоже((
админы канала, можете там перепрочитать и без ссылки вставить вопрос, а то я заново это всё не опишу, ну никак!
В магазах вдруг пропал Синглтон и я понимаю кто виноват), скрытая реклама?
в 2:00:00 у нас есть перевод list to map бинов, все классно работает. А как это протестировать. К примеру у меня 20 таких бинов. И как сделать чтобы они появились в тесте. Обычно я делаю @Spy. Но я хочу протестировать что все эти бины окажутся в map. Для этого можно конечно их всех перечислить, но тест получится бесполезным. Сейчас я придумал через reflection в тесте найти всех предков. Есть ли лучше решение?
точно такая же проблема возникла, через
@Import({ExportServiceLevelOne.class, ExportServiceLevelTwo.class, ExportServiceLevelThee.class})
решил сначала, потом сделал свой ImportBeanDefinitionRegistrar через него по типу интерфейса от которого наследованы классы в мапе регистрировал бины и оно работало. В ролике есть. Но! Мне под каждого теперь рестрары писать? Тем более что они только для тестов нужны.. Да и в @Configuration классе он глаза мозолит....
Переписал регистрар с дженериками, но как его подключить и передать тип класса.. в @Import не понятно...
Думаю: Надо же у Евгения речь обычная стала. А оказывается стояла скорость 0.75.
Эх) сколько живу работаю все эти паттерны все больше превращаются в антипаттерны)
37:35 Подтверждаю, все так и происходит.
3 часа на одном дыхании
Тодд Говард и Кирилл Толкачев это один человек?
Please explain in English video
Хорошо но мало (
2020 год, а звук нормально записать не можем
59:24
приветики
InhectList не нарушает разве OCP?
Для меня Женбка - оргазм с первого раза)
47:21 еще при field injection используется reflection, что не очень хорошо
Евгений, на 26:33 опечатка на слайде "speacial"
Всё здорово, но почему столько грамматических ошибок и опечаток в слайдах?
Потому что делал как студент, в ночь перед экзаменом.
Женя крут🔥👍💪
@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.
Мда, сингл респонсибилити, а потом вдруг лукап по имени филда...
иногда @Lazy(false) тоже турба
01:00:30
Patient это что?
теперь я тоже буду говорить синглЬтон )
"сингАЛЬтон"
@@stanislavkuzmin2611 спасибо. точно!
Разбейте по блокам на ютубе. Пожалуйста.
59:20
чёж тормозит чёж тормозит - оказалось зарядка не включена. Вроде большой уже, а не знает что ноутбуки медленней работают без питания
top
Е.Борисов, xml умер 🤣 ну, ну
хмм а материальчик то бу....
Chain of Responsibility немного не про это
Женя, че похудел так? Корона и коронтин??
Спринг паттернс для извращенцев)