@Autowired
chú thích được xác định trong khung Spring.
@Inject
chú thích là một chú thích tiêu chuẩn, được định nghĩa trong tiêu chuẩn "Dependency Injection for Java" (JSR-330) . Spring (kể từ phiên bản 3.0) hỗ trợ mô hình tiêm phụ thuộc tổng quát được định nghĩa trong tiêu chuẩn JSR-330. ( Khung Google Guice và khung Picocontainer cũng hỗ trợ mô hình này).
Với @Inject
có thể được tiêm tham chiếu đến việc thực hiện Provider
giao diện, cho phép tiêm các tham chiếu hoãn lại.
Chú thích @Inject
và @Autowired
- gần như hoàn toàn tương tự. Cũng như @Autowired
chú thích, @Inject
chú thích có thể được sử dụng cho các thuộc tính, phương thức và hàm tạo liên kết tự động.
Ngược lại với @Autowired
chú thích, @Inject
chú thích không có required
thuộc tính. Do đó, nếu không tìm thấy các phụ thuộc - sẽ bị ném ngoại lệ.
Cũng có sự khác biệt trong việc làm rõ các thuộc tính ràng buộc. Nếu có sự không rõ ràng trong việc lựa chọn các thành phần cho tiêm, @Named
nên bổ sung vòng loại. Trong một tình huống tương tự cho @Autowired
chú thích sẽ được thêm vào @Qualifier
vòng loại (JSR-330 định nghĩa @Qualifier
chú thích riêng của nó và thông qua chú thích vòng loại @Named
này được xác định).