Tôi nghĩ lý do chính khiến nhiều chuyên gia không chuyển sang tiêm phụ thuộc chú thích là nó không hỗ trợ chuyển đổi giữa môi trường phát triển/thử nghiệm/sản xuất. Đối với các mục đích phát triển trong nhiều trường hợp, bạn không chỉ sử dụng các dịch vụ khác nhau (và các kết nối cho chúng), nhưng đôi khi bạn cần phải giả lập chúng hoặc tạo các cá thể giả.tiêm phụ thuộc chú thích xử lý các môi trường khác nhau
Hôm qua tôi đã tìm ra một giải pháp với mùa xuân chú thích:
@Value("#{${env} == "production" ? realService : dummyService}")
private SomeService service;
... mà nên làm việc, nhưng không phải là tốt đẹp.
Tôi sẽ rất quan tâm đến các giải pháp của bạn, hoặc đối số: tại sao nó không phải là một vấn đề thực tế ;-) Guice, Spring, hoặc bất kỳ khác được chào đón.
Vấn đề ban đầu là một phần của chủ đề này: Spring @Autowired usage, nhưng tôi nghĩ nó đáng để tạo một chuỗi mới.