IoC Containers trong Spring

IoC Containers trong Spring

Spring container là cốt lõi của Spring Framework. Đây là một module rất quan trọng và được coi như là một trái tim của Spring Framework.Spring container trong spring sẽ tạo ra các vật thể, nối chúng lại với nhau, cấu hình chúng và quản lý vòng đời của chúng từ khi tạo ra đến khi hủy hoại.Spring container sử dụng DI để quản lý các thành phần tạo nên một ứng dụng. Những đối tượng này được gọi là Spring Beans, mà chúng ta sẽ thảo luận trong những bài tiếp theo.

IoC Container

IoC Container trong Spring được xây dựng dựa trên nguyên lý Inversion of Control (đảo ngược chiều điều khiển), đã xuất hiện khá lâu trong các mẫu hình thiết kế (Design Pattern), và được phổ biến rộng rãi nhờ Robert C. MartinMartin Fowler. Để hiểu về Spring, trước tiên chúng ta cần hiểu khái niệm Inversion of Control là gì? Muốn vậy, chúng ta cần trả lời câu hỏi: Control (điều khiển) trong chương trình phần mềm là gì, và Inversion (sự đảo ngược) đối với điều khiển trong ngữ cảnh này được hiểu như thế nào.

Container tạo ra các đố tượng nhanh chóng bằng cách cấu hình và lắp ráp bằng cách đọc siêu dữ liệu cấu hình được cung cấp trong file xml. (Metadata ) Siêu dữ liệu cấu hình có thể được biểu diễn bằng bằng XML, các chú thích Java (Annotation) hoặc mã Java. Sơ đồ dưới đây thể hiện quan điểm cấp cao về cách Spring hoạt động.Container Spring IoC sử dụng các lớp Java POJO và siêu dữ liệu cấu hình để tạo ra một hệ thống hoặc ứng dụng hoàn toàn được cấu hình và thực thi.

spring_ioc_container

Spring cung cấp hai loại container khác nhau sau đây:

STT mô tả Container
1 Spring BeanFactory ContainerĐây là bộ là container cung cấp hỗ trợ cơ bản cho DI và được xác định bởi giao diện org.springframework.beans.factory.BeanFactory. BeanFactory và các giao diện liên quan, như BeanFactoryAware, InitializingBean, DisposableBean.
2 Spring ApplicationContext ContainerContainer này cho biết thêm nhiều chức năng cụ thể của doanh nghiệp như khả năng giải quyết các tin nhắn văn bản từ tệp tin và khả năng xuất bản sự kiện ứng dụng cho người nghe sự kiện quan tâm. Vùng chứa này được định nghĩa bởi giao diện org.springframework.context.ApplicationContext.

Các ApplicationContext bao gồm tất cả chức năng của BeanFactory, vì vậy nó thường được khuyến khích hơn BeanFactory . BeanFactory vẫn có thể được sử dụng cho các ứng dụng nhẹ như các thiết bị di động hoặc các ứng dụng dựa trên applet nơi dữ liệu khối lượng và tốc độ đáng kể.