2013-04-15 31 views
5

Tài liệu chứa đoạn sau.Có sai sót nào về @Inject trong tài liệu tham khảo khung công tác mùa xuân 3.2.2 không?

"Giống như @Autowired, có thể sử dụng @Inject ở cấp lớp, cấp trường, cấp phương pháp và cấp đối số hàm tạo."

Nếu tôi không nhầm lẫn, tôi biết chú thích @Inject có thể được sử dụng cấp trường, cấp phương thức và mức đối số hàm tạo, không thể sử dụng cấp lớp.

Tiêm Chú Mã Nguồn:

@Target({ METHOD, CONSTRUCTOR, FIELD }) 
@Retention(RUNTIME) 
@Documented 
public @interface Inject {} 

Có đúng?

Trả lời

2

Đối với tôi, chúng gần như tương đương, @Inject là một phần của CDI được giới thiệu từ Java EE 6 và @Autowired một phần của khung công tác Spring.

Giao diện @Autowired trông có cùng một mục tiêu như @Inject:

@Target(value={CONSTRUCTOR,FIELD,METHOD}) 
@Retention(value=RUNTIME) 
@Documented 
public @interface Autowired 

Tôi nghĩ rằng đó là một lỗi nhỏ trong Spring documentation chương 5.11.1 vì tôi chưa bao giờ thấy bất kỳ @Autowired chú thích về mặt kĩ lớp.

This link cho thấy sự khác biệt và giới hạn của từng phương pháp.

Các vấn đề liên quan