Aşağıdaki isteğe bağlı CDI fasulyesini göz önünde bulundurun:Daha kapsamlı bir kapsamın Bean örneği, CDI'da daha geniş kapsamlı bir fasulye örneğine enjekte edildi - nasıl çalışıyor?
@RequestScoped
public class RequestScopedBean {
// ...
}
Şimdi, ben bir uygulama-scoped fasulye enjekte:
@ApplicationScoped
public class ApplicationScopedBean {
@Inject private RequestScopedBean requestScopedBean;
// ...
}
Bu kodu çalıştırdım ve istek-scoped fasulye örneği olduğunu kaydetti iki istek arasında farklıdır ancak uygulama kapsamındaki fasulye örneği aynıdır. Benim şüphem: Bu nasıl çalışır? İstek kapsamındaki fasulye örneği, her istekte uygulama kapsamlı alanına yeniden mı yazıldı? Veya başvuru kapsamındaki fasülyenin proxy'si sadece talepler arasında değişir mi?
Nasıl çalıştığını öğrenmek için [burada] (http://docs.jboss.org/weld/reference/latest/en-US/html/injection.html#d0e1429) kontrol edin. –
@jangroth [4.9 Müşteri Proxy'leri] (http://docs.jboss.org/weld/reference/latest/en-US/html/injection.html#_client_proxies) bölümü genel bir bakış sunuyor ancak nasıl çalıştığını açıklamıyor . Spesifik olarak, bir '@ ApplicationScoped 'fasulyesinin bir' @ SessionScoped' çekirdeği enjekte edildiğinde ve' RequestScoped 'yöntemlerinden iki paralel çağrı aldığında ne olur? – Alex
* Sorunun 4 yıl önce sorulduğunu ve CDI/Weld'in (ve belgelerinin) bu arada birkaç sürümde çarpma olduğunu farkettiniz. ;) –