2012-04-24 17 views

Odpowiedz

34

Domyślny zakres jest zależny pseudo-scope @Dependent, jak stwierdzono w weld documentation:

CDI dysponuje tzw zależną pseudo-Scope. Jest to domyślny zakres dla komponentu bean, który nie deklaruje jawnie typu zakresu. [...] Wystąpienie komponentu zależnego nie jest nigdy udostępniane między różnymi klientami lub różnymi punktami wtrysku. Jest ściśle zależny od obiektu innego obiektu. Jest tworzony, gdy obiekt, do którego należy, został utworzony i zniszczony, gdy obiekt, do którego należy, zostanie zniszczony.

javadoc for this annotation daje trochę więcej informacji na temat tego zakresu:

Fasola zadeklarowaną z zakresu @Dependent zachowują się inaczej do fasoli z innych wbudowanych typów zakres. Kiedy fasola jest uznane ma zakres @Dependent:

  • Nie wstrzykuje instancji fasola jest zawsze dzielona pomiędzy wielu punktów iniekcji.
  • Każde wystąpienie fasoli wstrzykniętej do obiektu, który jest tworzony przez kontener, jest powiązane z cyklem życia nowo utworzonego obiektu.
  • Po przeanalizowaniu wyrażenia zunifikowanego EL na stronie JSF lub JSP, które odnosi się do fasoli według nazwy EL, tworzona jest co najwyżej jedna instancja komponentu bean . Ta instancja służy do obsługi tylko jednej oceny wyrażenia EL. Jest on ponownie wykorzystywany, jeśli nazwa fasoli EL
    pojawia się wielokrotnie w ekspresji EL, ale nigdy nie jest ponownie wykorzystywana, gdy ekspresja EL jest ponownie oceniana lub gdy oceniane jest inne wyrażenie EL.
  • Każda instancja komponentu bean, który odbiera metodę producenta, pole producenta, metodę wywołującego lub wywołanie metody obserwatora, istnieje dla usługi
    , która obsługuje tylko tę inwokację.
  • Każde wystąpienie fasoli wprowadzonej do parametrów metod metody disposer lub metody obserwatora istnieje, aby obsłużyć tylko wywołanie metody.
+0

Dziękuję, Matt. Całkowicie przegapiłem tę część w dokumentach 1.0. Mój błąd. – kostja

+0

Nie ma problemu! Dobrze słyszeć, że pomogło! –

Powiązane problemy