Eingeschränkte Generika mit CDI
In der JSR-299-Spezifikation heißt es in §3.1:
Wenn die verwaltete Bean-Klasse ein generischer Typ ist, muss sie den Gültigkeitsbereich @Dependent haben. Wenn eine verwaltete Bean mit einer parametrisierten Bean-Klasse einen anderen Bereich als @Dependent deklariert, erkennt der Container das Problem automatisch und behandelt es als Definitionsfehler.
Tatsächlich bedeutet dies, dass Sie dies nicht tun können:
@Named
@SessionScoped or @RequestScoped or similar
public class MyProducer<T> {...}
Was sind die technischen Gründe für diese Entscheidung?
Wird es in einer kommenden Version von CDI durch Zufall behoben?
Gibt es eine bewährte Methode, um damit umzugehen / umzugehen?
Vielen Dank
BEARBEITEN - Eine Problemumgehung, die ich oft verwenden kann, ist das Injizieren eines generischen POJO-Beans in ein Bean mit dem erforderlichen Umfang. Oft, aber nicht immer.