Nguồn: https://stackjava.com/spring/spring-ioc-container.html
ioc (nghịch đảo điều khiển): Đảo ngược điều khiển, giúp thay đổi động luồng điều khiển của một chương trình.
Thường được sử dụng với tính năng tiêm phụ thuộc.
Bạn có thể xem bài viết về tiêm phụ thuộc để hiểu rõ hơn: https://stackjava.com/design-pattern/dependency-injection-di-la-gi.html
Vùng chứa ioc là thành phần triển khai ioc.
Vào mùa xuân, bộ chứa mùa xuân (ioc container) tạo các đối tượng, lắp ráp các đối tượng, cấu hình các đối tượng và quản lý vòng đời của các đối tượng từ khi tạo ra đến khi bị phá hủy.
Spring container sử dụng di để quản lý các thành phần và đối tượng để tạo ứng dụng. Thành phần, đối tượng này có tên là Spring bean (các bài sau sẽ nói về Spring bean)
Để tạo đối tượng, cấu hình, lắp rắp chúng, Spring Container sẽ đọc thông tin từ các file xml và thực thi chúng.
Có hai loại hộp chứa ioc trong mùa xuân:
ngữ cảnh ứng dụng đạt yêu cầu
Sự khác biệt giữa beanfactory và applicationcontext:
beanfactory và applicationcontext đều là giao diện triển khai vùng chứa ioc. applicationcontext được xây dựng bởi beanfactory, nhưng nó có một số tính năng bổ sung như tích hợp với Spring aop, xử lý tin nhắn, ngữ cảnh cho các ứng dụng web.
3.1 Nhà máy sản xuất hạt đậu
Để sử dụng spring bean, chúng ta cần khai báo các thư viện spring-bean sau:
lớp helloworld.java
Để tạo đối tượng helloworld thông qua vùng chứa ioc, chúng tôi sẽ định cấu hình nó trong tệp bean.xml
Bây giờ chúng ta sẽ tạo một beanfactory để đọc thông tin cấu hình và tạo một đối tượng helloworl.
beanfactory chỉ là một giao diện, vì vậy ở đây tôi sử dụng defaultlistablebeanfactory, một triển khai của beanfactory. Trong các phiên bản cũ hơn, bạn sẽ thấy hoặc sử dụng xmlbeanfactory, nhưng trong các phiên bản mới hơn, nó được đánh dấu là @deprecated.
Kết quả:
3.2 Bối cảnh ứng dụng
Để sử dụng spring bean, chúng ta cần khai báo thư viện spring-context sau:
Tôi sẽ làm cho đối tượng phức tạp hơn một chút so với helloworl.java.
Lớp ví dụ dataresource.java chứa thông tin kết nối với cơ sở dữ liệu.
Để tạo đối tượng helloworld thông qua vùng chứa ioc, chúng tôi sẽ định cấu hình nó trong tệp applicationcontext.xml (lưu ý rằng bạn có thể đặt tên tệp theo ý muốn: bean.xml, applicationcontext.xml, dataresource.xml … nhưng cần nhớ cấu hình tệp để làm gì)
Tạo một đối tượng applicationcontext để lấy thông tin từ tệp cấu hình và tạo một đối tượng nguồn dữ liệu
Kết quả:
Đã xong!
Bây giờ bạn muốn thay đổi thông báo trong đối tượng helloworld hoặc cơ sở dữ liệu của bạn thay đổi tên người dùng / mật khẩu hoặc thay đổi kết nối với cơ sở dữ liệu khác, bạn chỉ cần thay đổi thông tin trong tệp config .xml để thay đổi luồng. Chạy chương trình, tức là ioc.
Tải xuống mã mẫu tại đây