spring-boot 执行器刷新和内存数据库
Posted
技术标签:
【中文标题】spring-boot 执行器刷新和内存数据库【英文标题】:spring-boot actuator refresh and in memory db 【发布时间】:2019-06-10 14:47:03 【问题描述】:有没有办法以某种方式配置 spring-boot (2.1.1) 执行器刷新或 hikari/datasource,以便它重新执行负责创建内存数据库(例如 h2)的逻辑? 在 /actuator/refresh 之后的那一刻,我没有以前创建的表(hbm2ddl:create-drop 或 hbm2ddl:create)了。
【问题讨论】:
【参考方案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 所说,它确实主要用于测试,这让问题更加混乱:)
【讨论】:
以上是关于spring-boot 执行器刷新和内存数据库的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot JWT - 如何实现刷新令牌和注销 REST-API