Die JSR-299 Spezifikation Zustände in Abschnitt 3.1:Restricted Generika mit CDI
Wenn die verwaltete Bean-Klasse ein generischer Typ ist, muss es Anwendungsbereich hat @Dependent. Wenn eine verwaltete Bean mit einer parametrisierten Bean-Klasse einen anderen Bereich als @Dependent deklariert, erkennt der Container automatisch das Problem und behandelt es als Definitionsfehler.
Effektiv bedeutet, dass Sie dies nicht tun können:
@Named
@SessionScoped or @RequestScoped or similar
public class MyProducer<T> {...}
Was die technischen Gründe für diese Entscheidung sind?
Wird es in einer kommenden Version von CDI zufällig behoben?
Gibt es eine Best Practice für den Umgang damit?
Danke
EDIT - eine Abhilfe, die ich häufig verwenden kann mit dem benötigten Umfang eine generische POJO-Bohne in eine Bohne zu injizieren. Oft, aber nicht immer.
Große Frage, nebenbei bemerkt.Ich wusste nichts über diese Einschränkung, und es bringt dich wirklich zum Nachdenken. –