Ho un bean Spring definita beans.xml
come segue:metodo @PreDestroy di un bean Spring singoletto non chiamato
<context:annotation-config />
[...]
<bean id="myBackend" class="mycompany.BackendBean" scope="singleton" />
All'interno del fagiolo sono 2 metodi, che devono essere eseguiti all'inizio e prima della terminazione della applicazione web:
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");
}
}
Quando eseguo il server (mvn jetty:run
), posso vedere l'output del metodo init
nella console, da cui concludo che il metodo init
viene eseguito.
Quando si preme Ctrl-C
e il Jetty inizia a chiudere, non vedo l'output del metodo destroy
.
Cosa è necessario modificare per l'esecuzione del metodo destroy
quando l'applicazione viene terminata?
Hai intenzione di eseguire l'applicazione sul pontile? O hai bisogno di eseguirlo in più contenitori? – ssedano
Sto usando il jetty solo per test rapidi. In produzione, sto usando Apache Tomcat 7. –