@Autowired
chú thích được định nghĩa trong khuôn khổ mùa xuân.
@Inject
chú thích là chú thích chuẩn, được xác định 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 tổng quát về tiêm phụ thuộc được định nghĩa trong tiêu chuẩn JSR-330. (Google Guice frameworks và Picocontainer framework cũng hỗ trợ mô hình này).
Với @Inject
có thể được tiêm tham chiếu đến việc triển khai giao diện Provider
, cho phép chèn tham chiếu bị trì hoãn.
Chú thích @Inject
và @Autowired
- gần như hoàn toàn tương tự. Cũng như chú thích @Autowired
, chú thích @Inject
có thể được sử dụng cho các thuộc tính ràng buộc tự động, các phương thức và các hàm tạo.
Ngược lại với chú thích @Autowired
, chú thích @Inject
không có thuộc tính required
. Vì vậy, nếu các phụ thuộc sẽ không được tìm thấy - sẽ được ném ngoại lệ.
Ngoài ra còn 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ự mơ hồ trong việc lựa chọn các thành phần cho việc tiêm, thì cần thêm một loại vòng loại @Named
. Trong một tình huống tương tự cho chú thích @Autowired
sẽ được thêm @Qualifier
vòng loại (JSR-330 xác định chú thích @Qualifier
riêng của nó và thông qua chú thích định danh này @Named
được xác định).
Nguồn
2015-10-08 12:15:43
Tôi không có câu trả lời, vì tôi cũng mới, nhưng điều này có thể giúp http://sakaenakajima.wordpress.com/2010/08/10/spring-3-annotation-autowired-and- tiêm/ –
Nhân bản: http://stackoverflow.com/questions/13657787/import-custom-java-class – RustyShackleford
Sự khác biệt giữa '@Inject' và '@Autowired' được giải thích rõ trong bài viết này https: // alextheedom. wordpress.com/2016/02/13/insights-from-stackoverflow-most-bình chọn-cho-spring-4-questions/# 3 – Alex