Tôi thích tiêm xây dựng dựa trên vì nó cho phép tôi tạo các trường được tiêm final
. Tôi cũng thích tiêm hướng chú thích vì nó đơn giản hóa context.xml
của tôi. Tôi có thể đánh dấu hàm tạo của mình bằng @Autowired
và mọi thứ đều hoạt động tốt, miễn là tôi không có hai thông số cùng loại. Ví dụ, tôi có một lớp:Mùa xuân - tiêm 2 hạt cùng loại
@Component
public class SomeClass {
@Autowired(required=true)
public SomeClass(OtherClass bean1, OtherClass bean2) {
…
}
}
và một bối cảnh ứng dụng với:
<bean id="bean1" class="OtherClass" />
<bean id="bean2" class="OtherClass" />
Nên có một cách để chỉ định ID đậu vào constructor của lớp SomeClass
, nhưng tôi có thể' t tìm thấy nó trong tài liệu. Có thể, hay tôi đang mơ về một giải pháp chưa tồn tại?
'@ Autowire' là bởi tên tuổi quá, nhưng trong trường hợp đó bạn cần cung cấp setters. Nhưng ở đây các đối số hàm tạo được ưu tiên và '@ Autowire' sẽ không hoạt động nếu cả hai args đều có cùng kiểu. Do đó, điều có thể được giải quyết bằng cách sử dụng '@ Qualifier'. –
làm rõ câu trả lời. – Bozho
Noticed ....... + 1 –