Ioc container là gì

  -  

Giới thiệu nội dung bài viết

Chào bạn, chắc hẳn bạn cảm thấy khó hiểu về Spring IOC Container (DI) là gì đúng không? Có phải bạn không rõ khái niệm của nó trong lập trình?Tại sao chúng ta cần Spring IOC Container? Và cuối cùng là lợi ích khi sử dụng Spring IOC Container trong lập trình bằng ngôn ngữ Spring là gì?

1 .Spring IOC Container

Trong tất cả các dự án Spring thì Spring IOC Container là trái tim của Spring. Nó có nhiệm vụ quản lý vòng đời của bean (các đối tượng trong dự án spring), khởi tạo, cấu hình, và tương tác giữa các bean trong ứng dụng Spring. Mình có thể cấu hình Spring IOC bằng XML, Java code hoặc quan Java annotation.

Bạn đang xem: Ioc container là gì

Spring framework hỗ trợ 2 loại container là BeanFactory container và ApplicationContext container. Giúp chúng ta có thể khởi tạo và quản lý các beans (đối tượng) trong Spring.

BeanFactory là interface trên cùng của Spring IOC container, còn ApplicationContext là lớp con của BeanFactory. Sự khác nhau chính của BeanFactory và ApplicationContext là

BeanFactory : Các bean được tạo ra khi chúng ta gọi phương thức getBean()

ApplicationContext : chúng ta không cần phải chờ phương thức getBean được gọi mới tạo Bean. Mà khi container được start (khởi động) thì bean cũng đã được tạo ra do vậy không phải chờ gọi phương thức getBean.

2 .Khởi tạo Spring Container

Có 3 cách khởi tạo Spring Container như sau :

AnnotationConfigApplicationContext : Sử dụng khi chúng ta viết 1 chương trình Java độc lập. Không phải là Java web mà chỉ là ứng dụng java thông thường.

Xem thêm: Hướng Dẫn Cách Chơi Golf Hiệu Quả Mà Các Golfer Giấu Kín, Học Cách Chơi Golf

ClassPathXmlApplicationContext : Nếu như ta sử dụng XML để cấu hình cho Spring thì ta dùng ClassPathXmlApplicationContext để nạp các cấu hình đó thông qua file XML.

FileSystemXmlApplicationContext : Cũng tương tự như ClassPathXmlApplicationContext nhưng file cấu hình chúng ta không phải là XML và chúng ta chỉ định đường dẫn để nạp file đó là ở đâu.

Ví dụ như ta sử dụng ApplicationContext để tạo Spring Container cho ứng dụng Java độc lập như sau. Giả sử ta đã có file applicationContext.xml rồi.

Xem thêm: Game Bom It 5 - Cách Chơi 2 Người Trong Boom Online

1ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

3 .Lấy beans từ Spring Container bằng ApplicationContext

Spring Container là nơi chứa đựng tất cả các beans (đối tượng) của ứng dụng trong 1 chương trình. Mỗi bean sẽ có 1 cái tên riêng. Dựa vào cái tên đó ta có thể lấy được đối tượng tương ứng với tên.

12ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
Bước 1 : ta khởi tạo Spring Container bằng cách đọc file applicationContext.xml ClassPathXmlApplicationContext(“applicationContext.xml”) Như vậy trong file applicationContext.xml sẽ có tất cả các bean trong đó giả sử ta có 1 bean tên là helloWorld. Ta sẽ lấy ra ở bước 2

Bước 2 : ta sử dụng phương thức context.getBean(“bean name”) lúc này container sẽ trả lại cho mình 1 đối tượng như mình muốn context.getBean(“helloWorld”);

4 .Lấy beans từ Spring Container bằng BeanFactory

12XmlBeanFactory factory = new XmlBeanFactory (new ClassPathResource("beans.xml")); HelloWorld obj = (HelloWorld) factory.getBean("helloWorld");

*
Play

Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm