Inject đối tượng này vào đối tượng khác trong Spring sử dụng tập tin XML

Inject đối tượng này vào đối tượng khác trong Spring thực sự rất phổ biến khi các bạn làm việc với các dự án có sử dụng Spring framework. Trong bài viết trước mình đã đề cập đến thuộc tính ref của Spring để đưa đối tượng Shape vào đối tượng Drawing, trong bài viết này mình sẽ nói thêm một số cách khai báo khác để inject đối tượng này vào đối tượng khác trong Spring sử dụng tập tin XML, các bạn nhé!

OK, bây giờ giả sử mình có một lớp học, lớp học này sẽ bao gồm một hoặc nhiều sinh viên, cụ thể như sau:

Giờ chúng ta sẽ xem xét trường hợp đầu tiên nhé các bạn. Mình sẽ tạo một lớp học chỉ có một sinh viên duy nhất bằng cách đưa đối tượng sinh viên A vào trong đối tượng Clazz. Thông thường, chúng ta sẽ khởi tạo như sau:

Nếu đối tượng sinh viên A của chúng ta có khai báo một tên gọi, chúng ta cũng có thể sử dụng nó với thuộc tính ref của Spring.

Ngoài cách khai báo trên, chúng ta còn có thể khai báo như sau:

Sự khác nhau giữa thuộc tính ref và thuộc tính idref là: với ref bạn có thể khai báo là id của bean hoặc là name của bean, nhưng đối với idref thì chỉ có thể khai báo id của bean.

Ngoài ra, chúng ta còn 1 cách khác nữa để khai báo:

Đối tượng sinh viên A được tạo ra như thế này được gọi là Inner Bean, id của bean trong trường hợp này không quan trọng, Spring không quan tâm đến nó nhé các bạn.

Các bạn chỉ nên áp dụng trong trường hợp đặc biệt nào đó, ngoài ra theo mình nghĩ thì không nên dùng. Spring nó hỗ trợ nên mình chỉ muốn nói ra cho các bạn biết.

Code để kiểm tra:

Kết quả:

OK, giờ mình sẽ nói đến trường hợp thứ hai. Chúng ta sẽ tạo một lớp học với một danh sách các sinh viên. Mình sẽ tạo ba sinh viên A, B, C và đưa chúng vào đối tượng Clazz. Cụ thể như sau:

Code để kiểm tra:

Kết quả

Chia sẽ bài viết này ...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

12 thoughts on “Inject đối tượng này vào đối tượng khác trong Spring sử dụng tập tin XML

  1. Avatar

    E có chút chưa hiểu ở class Student có 2 thuộc tính String name và int age, khi khởi tạo bean trong file XML a sử dụng thẻ thì sẽ set đc giá trị cho name là “a” vậy còn giá trị age thì mình set như thế nào và thẻ chỉ set giá trị đầu tiên thôi ạ? nếu có 2 giá trị đều thuộc kiểu string thì sẽ như thế nào ? Mong a giải đáp giúp e :))

  2. Avatar

    Series tuyệt vời!

    Cám ơn chủ blog đã có những bài viết tuyệt vời! Minh đã kiếm tài liệu về Spring mấy ngày nay chỉ có mỗi nội dung ở đây vừa dễ đọc vừa đầy đủ rõ ràng.

    1. Khanh Nguyễn

      Nếu có n sinh viên thì mình cũng tạo n bean, mỗi bean chứa thông tin sinh viên khác nhau. Sau đó mình thêm vào giống như trường hợp thứ hai đó Quân.

        1. Avatar

          có cách nào để đưa 1 danh sách sinh viên có sẵn vào bean k ạ, chứ nếu sinh viên quá nhiều mà ta nhập vào thì hơi lâu đấy a.

          1. Khanh Nguyễn

            Nếu mà sinh viên quá nhiều, thì mình cần 1 cách khác để giải quyết, ví dụ mình sẽ dùng file properties để lưu danh sách sinh viên, sau đó sẽ viết lại code để có thể tạo bean từ danh sách sinh viên đó. Hoặc mình cũng có thể dùng database để lưu danh sách sinh viên cũng được. Cái này tùy theo nhu cầu của em thôi.

Add Comment