升级到Spring Boot 2from 时1.5,虽然 SQL 脚本没有改变,但出现以下错误:
Migration checksum mismatch for migration version 1
-> Applied to database : 1395032327
-> Resolved locally : -175919814
Run Code Online (Sandbox Code Playgroud)
Spring Boot推荐
为确保架构升级顺利进行,请按照以下说明进行操作:
首先将您的 1.5.x Spring Boot 应用程序升级到 Flyway 4(撰写本文时为 4.2.0),请参阅 Maven 和 Gradle 的说明。
一旦您的架构升级到 Flyway 4,升级到 Spring Boot 2 并再次运行迁移以将您的应用程序移植到 Flyway 5。
如果您不控制部署并且您不能两次部署应用程序(例如,用户下载应用程序的最新版本),这将是不可能的。
问题的原因是什么,解决方案是什么?
问:@SpringBootTest如何在 JUnit 5 停止 JVM(调用用 添加的钩子addShutdownHook())之前关闭通过用 注释测试类创建的 Spring Boot 上下文?
示例:
假设有一个像这样的 bean
@Component
public class SomeBean implements DisposableBean {
public SomeBean() {
var hook = new Thread(() -> System.out.println("Shutdown Hook called"));
Runtime.getRuntime().addShutdownHook(hook);
}
@Override
public void destroy() {
System.out.println("Destroy called");
}
}
Run Code Online (Sandbox Code Playgroud)
和一个简单的 Junit 5 测试,如下所示:
@SpringBootTest
class TestJvmShutdownHookApplicationTests {
@Test
void contextLoads() {
}
}
Run Code Online (Sandbox Code Playgroud)
destroy()如何在 JVM 关闭挂钩之前执行调用?
2021-02-18 13:54:24.540 INFO 18928 --- [ main] .a.t.TestJvmShutdownHookApplicationTests : Started TestJvmShutdownHookApplicationTests in 2.378 seconds (JVM …Run Code Online (Sandbox Code Playgroud)