Ich habe 2 Singletons in meiner JEE-Anwendung, die ich beim Start initialisieren möchte. Etwas wie folgt aus:Ausführungsreihenfolge von @PostConstruct
@Singleton
@Startup
public class ServiceB {
@EJB
private ServiceA a;
@PostConstruct
private void init() {
....
}
}
ServiceB nicht wirklich ServiceA brauchen, habe ich nur noch die Abhängigkeit, um sicherzustellen, dass ServiceA vollständig initialisiert (sprich: @ PostConstruct-Methode beendet), bevor ServiceB der init() -Methode beginnt.
Aber es wartet nicht. ServiceB startet eigentlich vor ServiceA.
Gibt es eine Möglichkeit sicherzustellen, dass eine @ PostConstruct-Methode von Bean darauf wartet, dass eine andere Bean @ PostConstruct-Methode beendet wird?
Ich weiß, ich könnte nur die @PostConstruct Annotation in ServiceA entfernen und rufen Sie direkt aus ServiceB
@PostConstruct init() {
a.init();
}
aber ich habe Installationen, wo es keine ServiceB ist. Daher kann ich mich nicht auf ServiceB verlassen, um ServiceA zu initalisieren. ServiceA muss das selbst tun. Und ServiceB muss darauf warten, dass ServiceA damit erledigt wird.