2011-06-26 31 views
5

Từ tài liệu xuân http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-child-bean-definitions:Xuân Bean Inheritance - Phạm vi, autowire, phụ thuộc-on, vv

Các thiết lập còn lại được luôn lấy từ định nghĩa con: phụ thuộc vào, chế độ autowire, kiểm tra sự phụ thuộc, singleton , phạm vi, lười biếng init.

Tôi nghĩ có một lý do chính đáng để không kế thừa các cài đặt này, nhưng không thể nghĩ ra. Lý do là gì?

Trả lời

0

Một trong những lý do chính là Mùa xuân được sử dụng để tiêm triển khai. Thông thường, các lớp mở rộng là các triển khai và nó là tự nhiên để nhận các chi tiết cấu hình từ các định nghĩa của chúng.

Lý do thực tế khác là chú thích không được kế thừa. Nếu một giao diện có các phương thức được chú thích, chú giải này không tự động hiển thị trong các lớp thực hiện/mở rộng mà không có một số thể dục thể hiện phản chiếu.

2

Tôi nghĩ đó là bởi vì nó sẽ gây nhầm lẫn hơn. Hãy tưởng tượng thời gian dành cho việc gỡ lỗi vì sao bean của bạn không nằm trong phạm vi (singleton) mặc định. Hoặc trường hợp khi đậu con được tiêm vào một hạt mà cha mẹ depends-on. Bạn sẽ nhận được một phụ thuộc vòng tròn mà không có khả năng nhận thấy nó.

Thừa kế bean chỉ ở dạng thuộc tính được tiêm, chứ không phải về cài đặt bean.

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