Евгений Борисов - Spring-потрошитель, часть 2

  Рет қаралды 207,259

JPoint, Joker и JUG ru — Java-конференции

JPoint, Joker и JUG ru — Java-конференции

Күн бұрын

Пікірлер: 77
@strash1692
@strash1692 3 жыл бұрын
0:00 - BeanFactoryPostProcessor 2:58 - @DeprecatedClass через BeanFactoryPostProcessor 10:43 - способ через аннотации @Component 12:24 - ClassPathBeanDefifnitionScanner 13:08 - способ через Java Config 16:27 - метод @Bean это не метод Java, это определение бина, просто имеет формат метода Java 16:47 - ConfigurationClassPostProcessor - особый BeanFactoryPostProccesor (! не bpp, а именно bFpp !) 17:45 - Groovy Config 19:54 - Пишем свой контекст 23:36 - Пишем свой контекст: context.properies 24:53 - Пишем свой контекст: PropertyFileApplicationContext 30:00 - Обновление Prototype в Singleton 38:06 - Обновление Prototype в Singleton: Prototype - Prototype 40:58 - Обновление Prototype в Singleton: Решение 1 (не правильное, через инжект ApplicationContext) 42:50 - Обновление Prototype в Singleton: Решение 2 (решение 50/50, через proxyMode = ...TARGET_CLASS, т.к. другая крайность - при любом обращении к полю - новый бин) 43:50 - Обновление Prototype в Singleton: Решение 3 (через фабричный метод и абстрактный класс) 46:53 - Написание кастомного Scope 59:16 - Benchmarks (Правильный бенчмарк - использовать сторонние инструменты, а не "изобретать велосипед", иначе ложный результат.) 1:04:27 - Benchmarks. Lookup бина. 1:05:06 1:05:13 - Benchmarks. Создание бина. 1:07:34 XML (700) < Annotation (2100) < Java Config (5100) 1:07:40 - Benchmarks. Инжекшн. 1:08:24 Annotation (150) < XML/Groovy (700 - 900) < Java Config (3000) 1:09:57 - Benchmarks. Создание объекта с прокси. 1:10:28 - (3,3) < DP (1800) < CGLib (4000) 1:10:48 - Benchmarks. Инвокация метода через прокси. 1:11:47 - (3,3) < CGLib/DP (10) < Spring Aspect (250)
@dmitriyn9462
@dmitriyn9462 2 жыл бұрын
Я только удивлён, у такого грамотного и бесценного материала всего 130к просмотров... В то же время у какого-нибудь мусора миллионы))) Автору огромное спасибо!
@airat2010
@airat2010 Жыл бұрын
поэтому основная масса и живет по течению. и получает деньги чтобы не умереть . А это для Java разработчиков - это гордая профессия
@protiv_bio
@protiv_bio 10 ай бұрын
@@airat2010 Java, это Java, на лучшем языке писать имеешь право
@yaroslavz1863
@yaroslavz1863 4 ай бұрын
подскажи пожалуйста есть на гите это?
@НиколайСкородумов-л7з
@НиколайСкородумов-л7з Жыл бұрын
Жека, спасибо большое! Смотреть интересно и увлекательно. Дай Бог тебе здоровья)
@ДмитрийСлисенко-ю9е
@ДмитрийСлисенко-ю9е 6 жыл бұрын
Чертовский интересно, полезно, грамотно, живо. Спасибо за труд!
@артурмалашков-э2е
@артурмалашков-э2е Жыл бұрын
когда 10 минут видео пересматриваешь 10 раз)
@глебк-п1н
@глебк-п1н 5 ай бұрын
Один из любимых докладов, прям вот кайфую от просмотра
@alexei3366
@alexei3366 7 ай бұрын
На этом приложении понятно , что такое прототайп и что такое сингелтон 🙂 Зачет!
@zugzug90
@zugzug90 7 жыл бұрын
ОГНЕННОЕ ВИДЕО! Жека - терминатор!
@Twitteron_
@Twitteron_ 8 ай бұрын
Тёзка, спасибо, ты лучший учитель по спрингу!
@вапвапвапвапва-ж1и
@вапвапвапвапва-ж1и 4 ай бұрын
тёзка, учите русский
@Paul-Olkov
@Paul-Olkov 13 күн бұрын
@@вапвапвапвапва-ж1и душнила ты
@ДимаГоликов-с6ш
@ДимаГоликов-с6ш 3 жыл бұрын
очень интересные примеры, которые наводят улыбку и поднимают настроение)
@VadimMikhnevych
@VadimMikhnevych 10 жыл бұрын
Отличный метод раздачи футболок! :)
@ЕвгенийШабунин-ъ1б
@ЕвгенийШабунин-ъ1б Жыл бұрын
Спасибо большое эту потрясающую лекцию. Очень хотелось бы попасть на офлайн конференцию к Евгению!
@andrey1983
@andrey1983 3 жыл бұрын
Спасибо за отличный доклад!
@igore4ek1988
@igore4ek1988 8 жыл бұрын
"Какая разница между Spring, String и Swing?" )))
@aslankussein3237
@aslankussein3237 8 жыл бұрын
во второй букве
@ip4989
@ip4989 3 жыл бұрын
Swing это когда парами меняются
@randomaccess4402
@randomaccess4402 3 жыл бұрын
@@ip4989 нет, это графическая либа в джаве
@ip4989
@ip4989 3 жыл бұрын
@@randomaccess4402 если я смотрю видео по спрингу, каков шанс, что я не знаю что такое свинг?)
@NeptuneCasto
@NeptuneCasto 3 жыл бұрын
@@ip4989 Зависит от того в какой год отправили терминатора)
@mrtoot3474
@mrtoot3474 4 жыл бұрын
кстати, Color можно было еще вот так определить @Autowired private javax.inject.Provider color; и потом где нужно color.get();
@dreamer_vi905
@dreamer_vi905 7 ай бұрын
Прошло 9 лет. Про создание бинов через Groovy так и не слышал.
@tusman4ik
@tusman4ik 6 ай бұрын
По факту:) Хз, мне сразу показалось, что это не удобно
@dotnet2012
@dotnet2012 9 ай бұрын
Доклад вышел 26.06.2014, а 04.09.2014 вышел Spring 4.1 где появилась аннотация @Lookup, которая по сути делает то же самое что и Евгений на 43:56
@lexbekker
@lexbekker 2 жыл бұрын
Легенда
@dimitryrusu4022
@dimitryrusu4022 Жыл бұрын
Мой мозг от этой лекции: Я ЖИДКИЙ
@Daniel-mo1iy
@Daniel-mo1iy Жыл бұрын
Да! Я тоже сразу не понимаю, первую лекцию смотрел раза 3)
@evileye100
@evileye100 4 жыл бұрын
всю лекцию смотрел, не стоит ли у меня ускоренное воспроизведение видео, не стояло...
@looklearn4745
@looklearn4745 3 жыл бұрын
Это для меня очень важный фактор оценки, чаще всего приходится ставить скорость на 1.5, потому что спикеры мямлят. Тут не пригодилось, отличная подача
@alexanderyurlov8319
@alexanderyurlov8319 9 жыл бұрын
Интересно слушать, хорошая подача! А есть код программы? посмотреть бы повнимательнее.
@mykytapiskarov7291
@mykytapiskarov7291 4 жыл бұрын
43:00-44:00 Не понимаю, почему использование proxyMode = target class у бина Color приводит к тому что при получение ColorFrame его зависимость Color будет каждый раз разная По логике ColorFrame должен иметь один и тотже цвет, только этот цвет по сути прокси через cglib
@mykytapiskarov7291
@mykytapiskarov7291 4 жыл бұрын
Отвечаю на свой коммент, дело в комбинации скопа прототайп и использовании прокси. При вызове любого метода прокси обьекта вначале изпользуя TargetSource получается объект что должен проксироватся. При чем для получения target обьекта используется beanFactory.getBean, что приводит к создании нового обекта, тк скоп бина в данном случае прототайп
@Lecomptby
@Lecomptby 4 жыл бұрын
@@mykytapiskarov7291 как ты узнал?)
@mykytapiskarov7291
@mykytapiskarov7291 4 жыл бұрын
Harv two погулял по соурс коду спринга
@goodvideobro
@goodvideobro 7 ай бұрын
просто супер
@Max-wn2gd
@Max-wn2gd 3 жыл бұрын
кому-нибудь удалось первый пример с заменой класса воспроизвести ? У Евгения на 9:30 возвращается нужный бин и вызывается метод, а у меня возвращется null
@ruslansitdikov1489
@ruslansitdikov1489 5 жыл бұрын
А когда пропертя загружаются? И можно ли их заюзать в postProcessBeanFactory?
@МарияПомазкина-д6э
@МарияПомазкина-д6э 7 жыл бұрын
50-60 минуты, где создается Scope "periodical", я воспроизвела этот пример, долго смотрела на работающую программу и обнаружила, что через 20-30 секунд Screensaver перестает менять цвет. Время смены цвета в коде я указала 2 секунды. Кто также воспроизводил код, понаблюдайте подольше за работающей программой, возникнет ли у вас такое же странное поведение?
@GoodGuyFinishFirst
@GoodGuyFinishFirst 7 жыл бұрын
Думаю проблема в том что метод getSecond() возвращает секунды в минуте, и когда now() доходит до конца минуты то секунды сбрасываются в ноль, и разность now().getSecond() - someTime.getSecond() уходит в отрицательные значения а значит меньше 3. Надо пользоваться duration-ами. Как написал Igor Salnikov выше.
@МарияПомазкина-д6э
@МарияПомазкина-д6э 7 жыл бұрын
Вот спасибо!
@NiyamaFoxy
@NiyamaFoxy 2 жыл бұрын
Всё ещё актуально?
@grigorym3125
@grigorym3125 Жыл бұрын
Проблема в том, что метод getSecond() возвращает кол-во секунд от начала минуты (то есть значение от 0 до 60), соответственно смена цвета будет не каждые три секунды, а как повезет (например если первый вызов был в 10:20 а следующий в 11:10, то цвет не сменится)
@smormanyak
@smormanyak 4 жыл бұрын
Этому человеку надо книги писать ) Есть что-то подобное почитать?
@thestory2417
@thestory2417 Жыл бұрын
Legenda!
@timon59388
@timon59388 3 жыл бұрын
Приятная атмосфера в аудитории шутят, подсказывают, майки требуют
@andrei4145
@andrei4145 9 жыл бұрын
Эпично
@oleksandrdyachuk3951
@oleksandrdyachuk3951 7 жыл бұрын
Я хочу от него ребенка!)))
@Ivan54r
@Ivan54r 6 жыл бұрын
для это нужно переписать beanpostprocessor
@inbuckswetrust7357
@inbuckswetrust7357 5 жыл бұрын
java когда чтобы отнять два времени нужно гуглить ;)
@iharbakhanovich
@iharbakhanovich 2 жыл бұрын
ссылка на гит есть?
@rustpoint-q9q
@rustpoint-q9q 11 ай бұрын
Как он все понимает, научите меня, буду весьма благодарен
@m0naco608
@m0naco608 6 ай бұрын
Он разработчик со стажем больше 20 лет )
@MrMaksimsergeevich
@MrMaksimsergeevich 5 жыл бұрын
Кто в итоге ящик пива выиграл? Барух или Жека?
@romandzhadan5546
@romandzhadan5546 2 жыл бұрын
top
@nickb.9677
@nickb.9677 4 жыл бұрын
Benchmark, кстати, отнюдь не восьмилетний =) Цифра 8 на этикетке к возрасту никакого отношения не имеет.
@UnitedFeodor
@UnitedFeodor Жыл бұрын
45
@melukandrew
@melukandrew 3 жыл бұрын
не вижу ничего плохого, что бы автовайрить контекст в синглтон и из него получать Бин. Да больше связность, но больше контроля, более предсказуемо и очевидно будет работать, в продакшене только такое и встречал. Смущает, что если вызвать по ошибке гетколор 2 раза в одном методе, то будет 2 разных инстенса, это не очевидно в месте вызова, потом можно долго искать причину баги.
@watchyourstepskid
@watchyourstepskid 4 жыл бұрын
Сколько людей без масок, ужас
@whoamiukr
@whoamiukr 3 жыл бұрын
чудом выжили!
@burningass5516
@burningass5516 2 жыл бұрын
Я, конечно, всё понимаю, но откуда у студента деньги на 8-летний виски?
@DimaTiunov
@DimaTiunov Жыл бұрын
Уже 10 летний)
Евгений Борисов - Spring-потрошитель, часть 1
1:04:27
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 527 М.
Евгений Борисов - Spring Patterns
56:38
TechTrain
Рет қаралды 136 М.
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 7 МЛН
Евгений Борисов - Power of Gradle
1:19:56
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 93 М.
Евгений Борисов - Spring - Глубоко и не очень
1:03:57
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 161 М.
Евгений Борисов - Spring the Ripper
51:55
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 18 М.
Собеседование в Альфа-Банк: Middle Java с лайв кодингом!
1:30:37
ШОРТКАТ — менторская программа
Рет қаралды 7 М.
Spring Security: Spring Security + REST + JWT
1:52:13
Александр Фисунов
Рет қаралды 49 М.
Асинхронный python / Python FastAPI / Python uv / Юрий Селиванов / #16
2:02:23
Организованное программирование | Кирилл Мокевнин
Рет қаралды 14 М.
Евгений Борисов -  Spring Puzzlers: тонкости и нюансы работы Spring
58:45
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 62 М.
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 7 МЛН