@PreDestroy Methode eines Feder-singleton-bean nicht aufgerufen

Ich habe eine Spring bean Definition in beans.xml wie folgt:

<context:annotation-config />
[...]
<bean id="myBackend" class="mycompany.BackendBean" scope="singleton" />

Innerhalb der bean sind 2 Methoden, die ausgeführt werden müssen, zu Beginn und vor Beendigung der web-Anwendung:

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), kann ich den Ausgang des init Methode in der Konsole, aus der ich schließe, dass die init - Methode ausgeführt wird.

Wenn ich drücken Sie Ctrl-C und Steg beginnt zu heruntergefahren, kann ich nicht sehen, die Ausgabe der destroy Methode.

Was sollte ich ändern, um für die destroy Methode ausgeführt werden soll, wenn die Anwendung beendet wird?

  • Sind Sie Planung, um führen Sie die Anwendung auf jetty? Oder Sie müssen mehr Container?
  • Ich bin mit Steg für schnelle tests nur. In der Produktion bin ich mit Apache Tomcat 7.
InformationsquelleAutor DP_ | 2013-05-04
Schreibe einen Kommentar