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.
Dziękuję, Matt. Całkowicie przegapiłem tę część w dokumentach 1.0. Mój błąd. – kostja
Nie ma problemu! Dobrze słyszeć, że pomogło! –