Как удалить все элементы документа MongoDB при завершении работы приложения Spring Boot или при уничтожении ServletContext?
Вот файл приложения Spring Boot. Он не работает:
@SpringBootApplication
public class DiscoveryServiceApplication {
public static void main(String[] args){
System.setProperty("server.servlet.context-path", "/");
SpringApplication.run(DiscoveryServiceApplication.class,args);
}
@NotNull
@Bean
ServletListenerRegistrationBean<ServletContextListener> myServletListener() {
ServletListenerRegistrationBean<ServletContextListener> srb =
new ServletListenerRegistrationBean<>();
srb.setListener(new DiscoveryServiceServletContextListener());
return srb;
}
class DiscoveryServiceServletContextListener implements ServletContextListener {
Logger logger= Logger.getLogger(com.skyscanner.discovery.config.DiscoveryServiceServletContextListener.class);
@Override
public void contextInitialized(ServletContextEvent sce) {
logger.info("ServletContext initialized");
}
@Override
public void contextDestroyed(ServletContextEvent sce){
//logger.info("RestAPI repository all items deleted");
//Optional<RestAPI> query=repository.findById("flight-service");
//RestAPI restAPI=query.get();
MongoClient mongoClient = new MongoClient();
DB database=mongoClient.getDB("skyscannerDiscoveryDB");
DBCollection collection=database.getCollection("restAPI");
BasicDBObject query=new BasicDBObject();
query.append("id","flight-service");
collection.remove(query);
logger.info("flight-service deleted");
}
}
}
В методе contextDestroyed я пытаюсь удалить элемент с идентификатором «flight-service», но он не работает.
Как я могу удалить все элементы в базе данных MongoDB при contextDestroyed или завершении работы приложения?