Rozważmy następującą prośbę o zakresie CDI Fasola:Instancja Bean o krótszym zasięgu wstrzykniętym do instancji typu bean o większym zakresie w CDI - jak to działa?
@RequestScoped
public class RequestScopedBean {
// ...
}
Teraz wstrzyknąć go w aplikacji-scoped Fasola:
@ApplicationScoped
public class ApplicationScopedBean {
@Inject private RequestScopedBean requestScopedBean;
// ...
}
wpadłem ten kod i zauważył, że wniosek o zakresie instancji fasola różni się między dwoma żądaniami, ale instancja komponentu o zakresie o zasięgu aplikacji jest taka sama. Mam wątpliwości: jak to działa? Czy instancja komponentu bean o żądaniu jest ponownie przypisywana do pola o zasięgu aplikacji przy każdym żądaniu? Czy też proxy obszaru o zasięgu aplikacji po prostu zmienia się między żądaniami?
Sprawdź [tutaj] (http://docs.jboss.org/weld/reference/latest/en-US/html/injection.html#d0e1429), aby dowiedzieć się, jak to działa. –
@jangroth [4.9 Proxy klienta] (http://docs.jboss.org/weld/reference/latest/en-US/html/injection.html#_client_proxies) rozdział zawiera przegląd, ale nie wyjaśnia, jak to naprawdę działa . Konkretnie, co się dzieje, gdy pojedynczy komponent bean '@ ApplicationScoped' ma wstrzykniętą fasolę' @ SessionScoped' i otrzymuje dwie równoległe inwokacje z metod '@ RequestScoped'? – Alex
* Zauważyłeś * że pytanie zadano 4 lata temu, a ten CDI/Weld (i jego dokumentacja) miał w międzyczasie kilka błędów wersji? ;) –