Và thông thường khi lập trình, để Class B sử dụng được class A, bạn có thể code như sau:
public class B { A a = new A(); }Nhưng với cách khởi tạo như trên, chúng ta sẽ không thể sử dụng được những class chứa thông tin chung cho nhiều class khác nhau. Ví dụ như class G chứa thông tin chung cho class F và class E. Nếu như ta khởi tạo theo cách trên, F và E sẽ có những instance khác nhau của G, do vậy dữ liệu mà 2 class này nhận được là khác nhau.
Để giải quyết vấn đề này, chúng ta có thể sử dụng Singleton Pattern. Nhưng nếu số lượng các class dạng này nhiều lên thì sao? Làm sao để chúng ta có thể xử lý được đống singleton class này và những quan hệ rối rắm giữa chúng với các class khác. Đó là lúc Spring framework xuất hiện như vị bụt trong tấm cám để giúp những người lương thiện như chúng ta.
Spring framework sẽ giúp ta quản lý những instance này bằng application context. Nơi đây sẽ chứa tất cả những instance mà chúng ta muốn, những cái instance này trong spring được gọi là "Bean". Từ những bean này, nếu như bạn muốn 1 class A nào đó sử dụng bean B, spring sẽ giúp bạn truyền bean B vào class A. Việc truyền bean này còn có thể thực hiện giữa các bean với nhau. Ví dụ bean C muốn dùng bean E và bean F, spring cũng hỗ trợ bạn truyền 2 bean này luôn. Và cái quá trình truyền bean này, được gọi là Dependency injection.
Application của bạn muốn hoành tráng, thì ngoài việc chỉ giải quyết vấn đề trên, còn phải quan tâm tới việc tương tác với cơ sở dữ liệu nữa. Với việc này, bạn chắc hẳn đã nghe đến JDBC, bạn có thể sử dụng nó để tương tác với database. Nhưng thực sự, cái công nghệ này đã quá cũ rồi, chắc cũng chẳng còn mấy ai xài nữa. Vậy nên, Spring lại tiếp tục giúp bạn việc này bằng cách cung cấp những api giúp bạn tương tác với database dễ dàng hơn.
Spring framework hỗ trợ chúng ta rất nhiều việc khác, như hỗ trợ trong việc xây dựng 1 java web application bằng spring mvc. Đến hiện tại, spring đã trở thành 1 cái gì đó như 1 hệ sinh thái ấy, nó có rất nhiều spring project hỗ trợ bạn trong nhiều lĩnh vực: như về bảo mật có spring security, về việc làm việc với mongodb ta có spring mongodb.... rất rất nhiều thứ khác nữa mà bạn có thể khai thác với framework này.
0 nhận xét:
Đăng nhận xét