ich eine Spring-Bean in beans.xml
definiert haben, wie folgt:@PreDestroy Methode eines Frühlings Singleton Bohne nicht genannt
<context:annotation-config />
[...]
<bean id="myBackend" class="mycompany.BackendBean" scope="singleton" />
Im Inneren der Bohne sind zwei Methoden, die zu Beginn und vor Beendigung der ausgeführt werden muss Webapplikation:
public class BackendBean implements IBackend {
private static final Logger LOGGER = LoggerFactory
.getLogger(BackendBean.class);
@PostConstruct
public void init()
{
LOGGER.debug("init");
}
@PreDestroy
public void destroy()
{
LOGGER.debug("destroy");
}
}
Wenn ich den Server (mvn jetty:run
) laufen, I die Ausgabe des init
Methode in der Konsole sehen kann, von dem ich feststellen, dass die init
Verfahren ausgeführt wird.
Wenn ich Ctrl-C
drücke und Jetty herunterzufahren beginnt, sehe ich die Ausgabe der destroy
Methode nicht.
Was muss ich ändern, damit die Methode destroy
ausgeführt wird, wenn die Anwendung beendet wird?
Planen Sie, die Anwendung auf Anlegesteg auszuführen? Oder müssen Sie es in mehr Behältern laufen lassen? – ssedano
Ich benutze Jetty nur für schnelle Tests. In der Produktion verwende ich Apache Tomcat 7. –