Container Internals
Mổ bên trong IoC container Spring: BeanFactory vs ApplicationContext, refresh() 12 bước, BeanDefinition + BeanFactoryPostProcessor, Environment/PropertySource, Resource + @SpringBootApplication. Hiểu data structure thật để debug startup không hoang mang.
Nội dung
Danh sách bài học
- 01~4 phút
Container Internals: Mổ Xẻ Bên Dưới Spring Container
Mổ xẻ bên trong IoC container Spring: BeanFactory vs ApplicationContext, refresh() 12 bước, BeanDefinition, Environment và xây dựng mini container.
- 02~12 phút
BeanFactory vs ApplicationContext: Bản Chất Hai Container
Mổ xẻ bản chất BeanFactory và ApplicationContext: cấu trúc singletonObjects, beanDefinitionMap, cơ chế delegation và 4 tính năng enterprise.
- 03~12 phút
Vòng Đời Khởi Động: Giải Mã 12 Bước Trong refresh()
Mổ xẻ 12 bước trong refresh() của AbstractApplicationContext, phân biệt BFPP và BPP, ánh xạ lỗi startup vào từng bước cụ thể.
- 04~12 phút
BeanDefinition & BFPP: Thao Tác Siêu Dữ Liệu Trước Khi Tạo Bean
Mổ xẻ BeanDefinition, phân biệt BeanFactoryPostProcessor với BeanPostProcessor và lý do tách pha metadata làm nền tảng cho Spring autoconfig.
- 05~12 phút
Environment & PropertySource: Cơ Chế Cấu Hình Đa Nguồn
Khám phá Environment và PropertySource trong Spring, thứ tự ưu tiên cấu hình, cơ chế Relaxed Binding và phân biệt ${...} với SpEL #{...}.
- 06~12 phút
Resource & @SpringBootApplication: Cơ Chế Nạp Tài Nguyên
Giao diện Resource trừu tượng hóa classpath và file system; phân tích 3 chú thích cốt lõi cấu thành @SpringBootApplication và cơ chế bootstrap.
- 07~30 phút
Mini-challenge: tự build mini IoC container 80 dòng
Thử thách tự code Mini IoC Container bằng Java thuần: quét Component, giải quyết dependency bằng Topological Sort và kích hoạt PostConstruct.
- 08~5 phút
Tổng Kết Module: Làm Chủ Toàn Diện Container Internals
Tổng kết module Container Internals: cấu trúc dữ liệu BeanFactory, giải mã 12 bước refresh, phân biệt BFPP với BPP và cơ chế nạp Resource.