Frage Was ist der Standardbereich einer benannten CDI-Bean?


Gibt es einen Standardbereich für eine @Named CDI-Bean ohne zusätzliche @...Scoped Anmerkungen? Ich habe keine relevanten Informationen in der gefunden offizielle Schweißdokumentation.

EIN @Named Bean kann über JSF ohne zusätzliche Anmerkungen zugegriffen werden, so dass ein impliziter Bereich wahrscheinlich erscheint.

Vielen Dank


21
2018-04-24 07:24


Ursprung


Antworten:


Der Standardbereich ist der abhängige Pseudobereich @Dependent, wie in der Schweißdokumentation:

CDI enthält den sogenannten abhängigen Pseudobereich. Dies ist der Standardwert   Bereich für eine Bean, die keinen Geltungsbereichstyp explizit deklariert. [...]   Eine Instanz einer abhängigen Bean wird niemals zwischen verschiedenen Instanzen geteilt   Kunden oder verschiedene Injektionsstellen. Es ist streng abhängig   Objekt eines anderen Objekts. Es wird instanziiert, wenn das Objekt es   gehört zu und wird zerstört, wenn das Objekt, zu dem es gehört, ist   zerstört.

Das Javadoc für diese Anmerkung gibt einige weitere Informationen zu diesem Bereich:

Bohnen, die mit scope @ Dependent deklariert sind, verhalten sich anders als Bohnen mit   andere integrierte Scope-Typen. Wenn eine Bean deklariert ist, einen Bereich zu haben   @Abhängig:

  • Keine injizierte Instanz der Bean wird jemals zwischen mehreren Injektionspunkten geteilt.
  • Jede Instanz der Bean, die in ein Objekt injiziert wird, das vom Container erstellt wird, ist an den Lebenszyklus des neuen Objekts gebunden
      erstelltes Objekt
  • Wenn ein vereinheitlichter EL-Ausdruck in einer JSF- oder JSP-Seite ausgewertet wird, die auf die Bean über ihren EL-Namen verweist, wird höchstens eine Instanz der   Bean wird instanziiert. Diese Instanz existiert, um nur eine einzige zu bedienen   Bewertung der EL-Expression. Es wird wiederverwendet, wenn der Bean-EL-Name verwendet wird
      erscheint im EL-Ausdruck mehrfach, wird aber nie wieder verwendet   der EL-Ausdruck wird erneut ausgewertet, oder wenn ein anderer EL-Ausdruck
      wird ausgewertet.
  • Jede Instanz der Bean, die eine Producer-Methode, ein Producer-Feld, eine Disposer-Methode oder einen Observer-Methodenaufruf erhält, existiert
      Service nur diesen Aufruf.
  • Jede Instanz der Bean, die in Methodenparameter einer Verfügungs- oder Beobachtungsmethode injiziert wird, existiert, um die Methode zu bedienen
      nur Aufruf.

35
2018-04-24 07:38