Frage zu Dependecy Injection

Diskutiere Frage zu Dependecy Injection im Allgemeines EE Bereich.
J

JanHH

Hallo,

wenn per @inject eine bean in eine andere (beides ejb, eine davon @singleton) injected wird, geschieht dies doch zum Zeitpunkt des Erzeugens, soweit ich weiss?

Also wenn ich haben

@Singleton
public class A

...

und eine EJB


@SessionScoped
@stateful
@Named
public class B
{
@inject
private A a;

...


dann ist das a-Objekt innerhalb der b-Bean immer dasselbe, oder? Da keine dynamische DI, kann es niemals vom application server aus welchem Grund auch immer gegen ein anderes ausgetauscht werden.

Wenn ich dann innerhalb von B eine Referenz auf A habe
myA=a;

dann wird myA immer auf die a-Bean zeigen und niemals ein null pointer werden, während der Lebensdauer der b-Bean, richtig?

Danke.
 
mihe7

mihe7

geschieht dies doch zum Zeitpunkt des Erzeugens, soweit ich weiss?
Je nachdem, in Deinem Fall unmittelbar nach der Erzeugung - der Konstruktor wird vorher noch aufgerufen.

Zum Rest: Ein Singleton existiert nur einmal für die Lebensdauer der Anwendung. Damit sollten alle Fragen beantwortet sein :)
 
J

JanHH

bedeutet also: ja, es klappt?

sicherheitshalbernochmalnachfrag

danke!
 
J

JanHH

naja es könnte ja auch immer nur eine instanz geben, aber ab und an halt eine andere. neu erzeugen, neu injecten, alte löschen. widerspricht aber der klaren aussage "wird zum zeitpunkt der erzeugung der bean injected".
 
K

kay73

Grundsätzlich ist der Sinn von DI, sich zu keinem Zeitpunkt über den Zeitpunkt der Erzeugung, des Wegwerfens oder die Identität oder den Zustand von "Beans" Gedanken zu machen. Die Lifecylce-Annotationen dienen letztlich einzig und allein dazu erkennbar zu machen, wie oft innerhalb einer Bean DI stattfindet.
 
mihe7

mihe7

Ja, mag sein, dass die Aussage nicht 100 %-ig korrekt ist (z. B. was Variablen betrifft, die nicht injected werden), aber die Sichtweise ist trotzdem interessant und meines Erachtens für DI sehr nützlich.
 
Thema: 

Frage zu Dependecy Injection

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben