0

有没有办法以某种方式配置spring-boot(2.1.1)执行器刷新或hikari/da​​tasource,以便它重新执行负责内存数据库(例如h2)创建的逻辑?在 /actuator/refresh 之后的那一刻,我不再有以前创建的表(hbm2ddl:create-drop 或 hbm2ddl:create)。

4

2 回答 2

0

我认为执行器用于不同的事情,主要是为了了解运行时微服务实例中发生的事情。

/actuator/refresh

确实使用 Refresh Scope 管理 bean,如果配置发生更改(例如在 Spring Boot 云配置服务中),它只是重新创建它们而不重新创建整个应用程序上下文(这可能是一项昂贵的操作)。

因此,它与 H2 DataSource 的生命周期无关,正如我们的同事 Shubham 所说的那样,它确实主要用于测试,这使问题更加混乱 :)

于 2019-01-17T08:11:46.897 回答
0

您的实现没有示例代码。但是您的问题似乎不是问题,因为这是 In-Memory Dbs 应该如何工作的。这些 Dbs(H2,Hsql) 用于测试,而不是用于生产,但如果您需要一些小数据,那么这些绝对没问题。还,
(hbm2ddl: create-drop or hbm2ddl: create)

在这里,它总是会在服务重新启动后重新创建数据库。将其更改为 (hbm2ddl: update) The syntax might not be correct

还考虑到您正在使用休眠

于 2019-01-17T08:05:17.050 回答