2013-04-15 6 views
5

Dokumentacja zawiera następujący akapit.Czy jest błąd w @Inject w dokumentacji źródłowej wiosennej 3.2.2?

"Podobnie jak w przypadku @Aemowired, możliwe jest użycie @Inject na poziomie klasy, poziomu pola, poziomu metod i poziomu argumentu konstruktora."

Jeśli nie popełniłem błędu, wiem, że adnotacja @Inject może być używana na poziomie pola, na poziomie metody i na poziomie konstruktora, nie może być używana na poziomie klasy.

wstrzyknąć kod źródłowy Adnotacja:

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

Czy to prawda?

Odpowiedz

2

Dla mnie są one prawie równoważne, @Inject jest częścią CDI wprowadzonego od czasu Java EE 6 i @Autowired części ramy Spring.

Interfejs @Autowired wygląda mieć taki sam cel jak @Inject:

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

myślę, że jest mały błąd w rozdziale 5.11.1 Spring documentation ponieważ nigdy nie widziałem żadnego @Autowired adnotacji na poziomie klasy.

This link pokazuje różnicę i ograniczenia każdego podejścia.

Powiązane problemy