2013-10-15 15 views
8

Giả sử hai lớp ClassA và ClassB. Giả sử ClassB phụ thuộc vào ClassA. Trên tập tin cấu hình, nếu chúng ta xác định phạm vi của ClassA là singleton và của ClassB là Prototype thì điều gì sẽ xảy ra với cá thể ClassB mỗi khi chúng ta tạo một cá thể bean của ClassA? Liệu cùng một cá thể ClassB được trả về hay cá thể mới được tạo ra mỗi khi cá thể của ClassA được trả về?Phạm vi đậu mùa xuân. Singleton và Prototype

Cảm ơn bạn !!!

+4

Vì vậy, nhiều lập trình mùa xuân ...: D. Việc tiêm một hạt đơn trong một bean nguyên mẫu sẽ dẫn đến các trường hợp khác nhau của bean nguyên mẫu bằng cách sử dụng cùng một cá thể của bean đơn. Đối với trường hợp nghịch đảo (tiêm một bean nguyên mẫu trong Singleton), nếu có, theo mặc định, phục vụ bean đơn với cùng một cá thể của bean nguyên mẫu (xem [bài viết này] (http://prasanthnath.wordpress.com/2013/ 03/21/injecting-a-prototype-bean-thành-a-singleton-bean /) để biết thêm thông tin). –

Trả lời

5

nếu ClassB là mẫu thử nghiệm, một phiên bản mới của ClassB luôn được tạo, nó không quản lý các lớp khác khi tạo.

Vì vậy, ClassB là nguyên mẫu và ClassA singleton, bạn có thể có N trường hợp của ClassB và chỉ 1 của ClassA trong ứng dụng của bạn tại một số điểm.

Trong trường hợp của bạn, như chỉ có một thể hiện của ClassA sẽ tồn tại trên ứng dụng vòng đời của bạn, nó sẽ chỉ có một trường hợp ClassB mà sẽ khác nhau đối với bất kỳ ClassB khác được tham chiếu bởi đậu khác trong ứng dụng của bạn

3

Điều gì xảy ra với trường hợp của ClassB mỗi khi chúng ta tạo một cá thể đậu của ClassA?

Kể từ ClassA là một singleton, một đơn dụ sẽ được chia sẻ giữa tất cả các trường hợp của ClassB.

Sẽ cùng một cá thể ClassB được trả về hoặc phiên bản mới được tạo mỗi trường hợp của ClassA được trả về?

Tôi nghĩ ở đây bạn có nghĩa là Sẽ cùng một cá thể ClassA được trả lại hoặc phiên bản mới được tạo mỗi trường hợp thời gian của ClassB được trả về?

Mỗi lần xuất hiện ClassB được chia sẻ ClassA phiên bản cũ sẽ được sử dụng.

+0

Tôi chắc chắn tha dụ tương tự của ClassA sẽ được trả lại ... nhưng không chắc chắn về trường hợp của ClassB. Cảm ơn bạn!!! –

2

điều gì sẽ xảy ra với trường hợp của ClassB mỗi lần chúng tôi tạo cá thể đậu của ClassA?

Không có gì, nếu ClassA là singleton nó sẽ được khởi tạo chỉ một lần.

Sẽ cùng một cá thể ClassB được trả về hoặc phiên bản mới được tạo mỗi trường hợp của ClassA được trả về?

Các trường hợp khác nhau, vì đó là hạt mẫu. Nhưng kể từ khi ClassA là singleton nó sẽ được instanciated cùng một cách mọi thời gian. (Phụ thuộc vào mối quan hệ của bạn giữa các lớp học mà bạn đã đề cập)

Các vấn đề liên quan