[Series] Spring Core - Keep It Simple (P1): Spring IoC container

Trước đây khi mới học Spring, mình thường nhảy thẳng lên tìm hiểu các project như Spring MVC hay Spring Boot để viết ứng dụng, thỉnh thoảng mới ngó qua Spring Core - cốt lõi của Spring Framework. Trong quá trình làm việc thực tế, mình mới thấy điều này khá nguy hiểm. Bên cạnh đó, documentation gốc của Spring Core https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html có thể nói là khá dài, nhiều thuật ngữ chuyên môn liên quan đến OOP (lập trình hướng đối tượng), OOD (thiết kế hướng đối tượng). Mình quyết định viết 1 series với hi vọng có thể tổng hợp những kiến thức cơ bản và trọng tâm, hay động đến trong thực tế của Spring Core. Phạm vi của series sẽ nằm trong phần 1. The IoC Container của documentation thôi nhé :D.

Series gồm có 8 phần:


1. Spring IoC Container là gì?

IoC (Inversion of Control) container được xem là cốt lõi của Spring Framework, giúp lập trình viên quản lý quá trình thực thi DI (Dependency Injection) trong ứng dụng một cách tự động.

Các đối tượng tạo nên xương sống của ứng dụng và được quản lý bởi Spring IoC Container được gọi là các bean.

2. BeanFactoryApplicationContext

Hai package org.springframework.beansorg.springframework.context là những nền tảng của Spring IoC container. Trong đó:

  • Interface BeanFactory của package org.springframework.beans cung cấp framework cấu hình và chức năng cơ bản.
  • Interface ApplicationContext của package org.springframework.context bổ sung thêm các chức năng dành riêng cho doanh nghiệp như internationalization, AOP, transaction management, ...

Chúng ta có thể xem ApplicationContext giống như là một subinterface bổ trợ cho BeanFactory. Do đó trong thực tế, chúng ta sẽ ưu tiên sử dụng ApplicationContext hơn là BeanFactory.

Hình dưới đây mô tả tổng quan luồng hoạt động của Spring IoC Container. Spring IoC Container (mà đại diện là ApplicationContext) sau khi nạp các POJO, sẽ kết hợp với configuration metadata (được biểu diễn bằng XML hoặc Java code) để khởi tạo, cấu hình và lắp ráp các bean. Lúc này, chúng ta sẽ có một ứng dụng được cấu hình đầy đủ và có thể thực thi được.

Spring IoC Container

3. Hai cách cấu hình một ứng dụng Spring

Do configuration metadata có 2 cách biểu diễn là XML và Java code, nên chúng ta sẽ có 2 cách để cấu hình một ứng dụng Spring là cấu hình bằng XML và cấu hình bằng Java code. Trong tutorial này, chúng ta sẽ tập trung vào cách cấu hình này nhé.

Với cấu hình bằng XML, các implementation hay dùng của ApplicationContextClassPathXmlApplicationContextFileSystemXmlApplicationContext (dành cho ứng dụng standalone) và XmlWebApplicationContext (dành cho ứng dụng web).

Với cấu hình bằng Java code, implementation hay dùng của ApplicationContextAnnotationConfigApplicationContext (dành cho ứng dụng standalone) và AnnotationConfigWebApplicationContext (dành cho ứng dụng web).

...

Trong phần 2 của series, mình sẽ trình bày tổng quan về bean.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Nguyễn Tuấn Anh

28 bài viết.
228 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
49 41
MyContact là một ứng dụng mà mình thường viết mỗi khi học một ngôn ngữ hay công nghệ mới. MyContact chỉ là một ứng dụng CRUD đơn giản, cho phép ngư...
Nguyễn Tuấn Anh viết gần 3 năm trước
49 41
White
27 14
Hướng dẫn lập trình Spring Security Trong bài viết lần này, mình sẽ giúp các bạn bước đầu tìm hiểu (Link) thông qua xây dựng các chức năng: Đăng ...
Nguyễn Tuấn Anh viết gần 3 năm trước
27 14
White
17 1
Giới thiệu Spring Framework Trong bài viết này, mình sẽ giới thiệu cho các bạn về một trong những Java EE framework rất nổi bật và phổ biến hiện n...
Nguyễn Tuấn Anh viết gần 3 năm trước
17 1
Bài viết liên quan
White
0 0
Trong bài viết này, một số hình ảnh hoặc nọi dung có thể bị thiếu do quá trình chế bản. Vui lòng xem nội dung ở blog gốc sau: (Link) (Link), chúng...
programmerit viết hơn 4 năm trước
0 0
White
0 0
Giới thiệu Trong bài hôm nay chúng ta sẽ tìm hiểu cách handle request POST của Spring Boot. Trước đó, bạn nên biết 1. 「Spring Boot 8」Tạo Web He...
https://loda.me viết 6 tháng trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
28 bài viết.
228 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!