【问题标题】:spring-boot actuator refresh and in memory dbspring-boot 执行器刷新和内存数据库
【发布时间】:2019-06-10 14:47:03
【问题描述】:

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

【问题讨论】:

    标签: spring-boot spring-cloud spring-boot-actuator actuator


    【解决方案1】:

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

    在这里,它总是会在服务重新启动后重新创建数据库。 将其更改为 (hbm2ddl: update) 语法可能不正确

    还考虑到您正在使用休眠

    【讨论】:

      【解决方案2】:

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

      /actuator/refresh
      

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

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

      【讨论】:

        猜你喜欢
        • 2020-08-16
        • 1970-01-01
        • 1970-01-01
        • 2017-01-30
        • 1970-01-01
        • 2019-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多