2012-03-30 6 views
1

Ich habe einen statischen Initialisierungsblock, wo ich Daten aus der DB in bestimmte Variablen lesen, diese Daten während der Lebensdauer der Anwendung & in regelmäßigen Abständen zu DB speichern, aber wenn die Anwendung ist unerwartet/plötzlich zerstört/nicht implementiert Ich möchte den aktuellen Status der Variablen zurück in die DB schreiben.Ausführen, wenn eine Anwendung zerstört/nicht implementiert

Wie kann ich dies mit on-Destroy-Trigger in Java implementieren?


Edit:

Was ist mit der @PreDestroy Anmerkung, könnte es für meinen Fall nützlich sein?

+0

Weiß jemand, ob die 'finalize()' Methode für diesen Zweck nützlich wäre? für und Wider ? – jambriz

Antwort

2

Angenommen, dies ist eine Webanwendung, können Sie eine ServletContextListener implementieren und registrieren. Seine contextInitialized Methode wird einmal bei der Bereitstellung aufgerufen, und contextDestroyed wird einmal bei Deimplementierung aufgerufen.

Wenn der Container jedoch nicht ordnungsgemäß beendet wird, kann contextDestroyed möglicherweise noch nicht ausgeführt werden.

Siehe this page für ein Beispiel für die Einstellung eines.

+0

Ja, das ist eine Webapp, aber da ich in einem statischen Initialisierungsblock in einer Klasse initialisiere/initial las, fragte ich mich, ob es schön wäre, wenn ich in der gleichen Klasse, wenn möglich, Ondestroy auslösen könnte! –

+0

Das Starten/Herunterfahren der Logik basierend auf dem Laden/Entladen der Klasse scheint viel weniger vorhersehbar zu sein. Es ist möglich, dass Sie in die Klasse, die entladen wird, einsteigen können, aber ich bin nicht derjenige, der danach fragt. –

+0

Danke Paul! –

Verwandte Themen