Kürzlich bin ich in einem Firmenprojekt @PostConstruct auf diese Anmerkung gestoßen und war ratlos.
Rezension:
Nach der Beratung lautet die Zusammenfassung wie folgt:
1. Ausgehend von der Java EE5-Spezifikation werden zwei Annotationen, die den Lebenszyklus des Servlets beeinflussen, @PostConstruct und @PreDestroy, verwendet, um eine nicht-statische void()-Methode zu modifizieren. Es gibt zwei Arten, es zu schreiben:
@PostConstruct
public void someMethod(){}
oder
public @PostConstruct void someMethod(){}
Die Methode @PostConstruct modified läuft, wenn der Server das Servlet lädt, undSie wird nur einmal vom Server ausgeführt。 PostConstruct wird nach dem Konstruktor und vor der Methode init() ausgeführt. Die PreDestroy()-Methode wird ausgeführt, nachdem die destroy()-Methode intellektuell ist
Außerdem werden die Reihenfolgen Konstrukteur, @Autowired und @PostConstruct im Frühling
Tatsächlich können wir aus der wörtlichen Bedeutung von Abhängigkeitsinjektion wissen, dass um Objekt p in Objekt A zu injizieren, zuerst Objekt A und Objekt p erzeugt werden müssen, bevor die Injektion durchgeführt werden kann. Wenn also eine Mitgliedsvariable p @Autowried in der Klasse A annotiert ist, erfolgt @Autowired Injektion nach der Ausführung der Konstruktionsmethode von A.
Wenn Sie einige Initialisierungsoperationen ausführen möchten, wenn Sie ein Objekt generieren, und diese Initialisierungsoperationen von der Abhängigkeitsinjektion abhängen, dann geht das nicht im Konstruktor. Dazu können Sie eine Methode @PostConstruct Annotationen verwenden, um die Initialisierung abzuschließen, @PostConstruct annotierte Methoden werden automatisch aufgerufen, nachdem die Abhängigkeitsinjektion abgeschlossen ist.
Konstrukteur >> @Autowired >> @PostConstruct
Beispiel:
|