【发布时间】:2022-11-23 15:34:02
【问题描述】:
我有一项服务使用 H2 数据库处理实体的 CRUD 操作。以前在测试阶段我曾经有一个 csv 文件,它“充当”数据库并且在应用程序关闭时我将所有内存中的实体更改保存到这个 csv 文件。现在我想做同样的事情,但出于某种原因,我没有在我的 onExit() 方法中遇到任何断点,因此没有在应用程序关闭时保存数据。我仍在制定正确的选择逻辑哪个要保存的实体,但现在我只想在按下 Intellij 中的停止“应用程序”按钮时能够自动保存。
@Component
public class MangaDataProvider {
private static MangaService mangaService;
@Autowired
public MangaDataProvider(MangaService mangaService) {
MangaDataProvider.mangaService = mangaService;
}
@PreDestroy
public static void onExit() {
mangaService.saveAll();
}
}
然后我在 Application 中有一个 onExit() 方法:
@SpringBootApplication
public class Application extends SpringBootServletInitializer implements AppShellConfigurator {
public static void main(String[] args) {
LaunchUtil.launchBrowserInDevelopmentMode(SpringApplication.run(Application.class, args));
}
@PreDestroy
public void onExit() {
MangaDataProvider.onExit();
}
}
【问题讨论】:
标签: java spring-boot jpa