🔥 Як працює магія Spring під капотом? @EnableMagic, BeanDefinition та BeanPostProcessor

  Рет қаралды 6,885

Bobocode

Bobocode

Күн бұрын

👉 Приєднуйся до Bobocode Community: www.bobocode.com/
____________________________________________
Patreon: / bobocode
GitHub: github.com/bobocode-projects
Telegram: t.me/bobocode​
LinkedIn: bit.ly/2RWPQF5
Twitter: bit.ly/3vaQiOl
Тарас в LinkedIn: bit.ly/2ElWg8J
Тарас в Twitter: bit.ly/33Pmuwg
____________________________________________
18-те заняття тренувальної програми Ultimate Enterprise Java (2021).
УВАГА! Відеозапис не містить активної частини заняття.
00:00 - Нарізка основних моментів
03:14 - Початок
05:22 - Що робить Spring IoC?
06:40 - Просто про роботу IoC контейнера
07:56 - Чому Spring IoC такий складний?
08:27 - Великі можливості
10:58 - Крайні випадки
11:52 - Який патерн лежить в основі магії?
12:09 - Що таке дизайн патерн Proxy?
13:25 - ОСНОВНІ КОНЦЕПЦІЇ
13:27 - Що таке Bean?
13:47 - Що таке BeanDefinition?
14:27 - Що таке BeanPostProcessor?
15:15 - Що таке BeanFactoryPostProcessor?
15:45 - Демо 1
16:04 - Створюємо Spring-застосунок
17:50 - Створюємо ApplicationContext вручну
19:29 - Як отримати назви всіх BeanDefinition?
20:50 - Як біни Spring реєструє за замовчуванням?
21:30 - Створюємо Spring Boot-застосунок
23:21 - Як біни Spring Boot реєструє за замовчуванням?
23:40 - Порівнюємо початковий контекст Spring і Spring Boot
24:48 - Детальніше про BeanDefinition
25:21 - Дивимося логи під час ініціалізації контексту
29:03 - Як створити власний BeanDefinition?
34:41 - Коли створиться бін по нашому BeanDefinition?
37:56 - Як Spring зберігає біни?
40:20 - Як Spring вирішує циклічну залежніть?
45:27 - Реалізовуємо асинхронний виклик метода за доп. @Async
51:30 - Як працює @Async?
53:55 - Демо 2
54:12 - Створюємо @EnableMethodLogging
56:18 - 🔥 Реалізовуємо свій BeanPostProcessor
01:00:51 - Реалізовуємо метод postProcessAfterInitialization
01:06:04 - Створюємо проксі для біна за доп. CGLib
01:14:51 - Як працюють аннотації @Enable...?
01:19:38 - Приклад BeanPostProcessor
01:23:40 - Який звʼязок між AOP і BeanPostProcessor?
01:25:24 - Що таке умовні біни (@Conditional)?
01:28:25 - @ConditionalOn...
#opensource #java #education

Пікірлер: 24
@Bobocode
@Bobocode Жыл бұрын
👉 Навчання від Bobocode: bit.ly/3IRrJhj
@pavloantentyk8221
@pavloantentyk8221 2 жыл бұрын
Дякую за якісний український контент!
@user-fn9jj3il1j
@user-fn9jj3il1j 2 жыл бұрын
Продовжуйте!!!!
@user-nq4bt9lm2d
@user-nq4bt9lm2d Жыл бұрын
Крутий урок! Дякую.
@Bobocode
@Bobocode Жыл бұрын
Дякую вам!
@pavloantentyk8221
@pavloantentyk8221 2 жыл бұрын
👍👍👍
@makaka527
@makaka527 Жыл бұрын
Топчик
@Bobocode
@Bobocode Жыл бұрын
Дякую!
@ercefwxdx
@ercefwxdx Жыл бұрын
Дякую
@AngeIOk
@AngeIOk 2 жыл бұрын
Гачок
@maximkosey5549
@maximkosey5549 Жыл бұрын
Дайте будь ласка посилання на видео про патерни !
@Bobocode
@Bobocode Жыл бұрын
kzfaq.info/get/bejne/iJuGdK2Vsqiukpc.html
@freedman99
@freedman99 2 жыл бұрын
Привіт. Не можу знайти код на гіті.
@Bobocode
@Bobocode 2 жыл бұрын
Привіт! Який код?
@freedman99
@freedman99 2 жыл бұрын
з відео
@Bobocode
@Bobocode 2 жыл бұрын
Його нема на GitHub
@user-nq4bt9lm2d
@user-nq4bt9lm2d Жыл бұрын
Було б доречно згадати про використання проксьованих бінів і анотації @Lookup
@Bobocode
@Bobocode Жыл бұрын
Ви використовуєте в роботі @Lookup?
@user-nq4bt9lm2d
@user-nq4bt9lm2d Жыл бұрын
@@Bobocode Так, іноді виникає необхідність. (Не тільки я, в нашій команді)
@caffeinejavacode1475
@caffeinejavacode1475 Жыл бұрын
if you get an error 1:12:18 Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @548ad73b add to VM options --add-opens java.base/java.lang=ALL-UNNAMED
@baibula
@baibula Жыл бұрын
Or switch to Spring 5 and Java 11.
@caffeinejavacode1475
@caffeinejavacode1475 Жыл бұрын
@@baibula make downgrade?
@baibula
@baibula Жыл бұрын
@@caffeinejavacode1475 sure
@dmytrolisunov4073
@dmytrolisunov4073 2 жыл бұрын
Super sport🤯
00:15
Lexa_Merin
Рет қаралды 19 МЛН
Cat story: from hate to love! 😻 #cat #cute #kitten
00:40
Stocat
Рет қаралды 10 МЛН
Kademlia, Explained
24:22
number 0
Рет қаралды 14 М.
Почему мебель дорогая? / Разница между дешевыми и дорогими шкафами
9:51
BMF1 | Корпусная мебель на заказ в Москве и МО
Рет қаралды 914
15 crazy new JS framework features you don’t know yet
6:11
Fireship
Рет қаралды 178 М.