Có hai chú thích riêng biệt để thực hiện tiêm phụ thuộc theo tên trong Mùa xuân, javax.annotation.Resource
và javax.inject.Named
. Các documentation at Spring chỉ @Resource
nên được sử dụng để tiêm theo tên:tiêm phụ thuộc mùa xuân, để sử dụng @Named hoặc @Resource?
Nếu bạn có ý định thể hiện tiêm chú thích-driven theo tên, không chủ yếu sử dụng @Autowired, ngay cả khi là về mặt kỹ thuật có khả năng đề cập để một tên đậu thông qua các giá trị @Qualifier. Thay vào đó, hãy sử dụng chú thích JSR-250 @Resource, được định nghĩa ngữ nghĩa để xác định thành phần mục tiêu cụ thể là với tên được khai báo không liên quan đến quá trình đối sánh.
Trên đây là một chút bối rối, như mùa xuân chỉ ủng hộ @Resource
thay vì @Autowired
kết hợp với @Qualifer
. Không có đề cập đến số @Named
cho đến later in the documentation.
JSR-250 định nghĩa @Resource
, trong khi JSR-330 định nghĩa @Inject
và @Named
. Tôi biết họ có thể được trộn lẫn và kết hợp trong mùa xuân khá dễ dàng. JSR nào sẽ sử dụng?
Dường như tính di động với Guice và CDI sẽ tốt đẹp và do đó sử dụng chú thích JSR-330. Mặt khác, tài liệu cũng chỉ ra tại một vài số limitations trong mùa xuân khi sử dụng chú thích JSR-330.
Phương pháp hay nhất (nếu có) cho chú thích từng phần tên?
Cảm ơn bạn.
Các giới hạn được đề cập chỉ đề cập đến cách Spring sẽ sử dụng các chú thích đó và cách các chú thích mà Spring giới thiệu mạnh mẽ hơn nhiều khi làm việc với Spring một cách cụ thể. –
Những hạn chế không có vẻ như tất cả những gì đáng sợ. Mặc dù chúng tồn tại. Có vẻ như rất nhiều điều này sẽ đơn giản hơn nếu Spring cũng đã chấp nhận chú thích CDI bổ sung. – Saish