Spring Boot 1.4:Liquibase完成后执行方法

Yan*_*lem 7 java spring liquibase spring-boot

我有一个使用Liquibase的基于Spring Boot 1.4.0的项目.

是否可以在liquibase完成后执行方法?

像Bean Post Processor这样的东西?

我想要做的是在应用程序以开发模式启动时向我的数据库添加一些数据.在开发模式下,应用程序使用内存中的h2数据库,因此liquibase必须先创建表,然后才能编写数据.

And*_*son 17

Spring Boot自动配置一个SpringLiquibase名为的bean liquibase.在Liquibase完成之后,将创建依赖于此bean的任何bean.例如,您可以使用@PostConstruct填充数据库:

@Bean
@DependsOn("liquibase")
public YourBean yourBean() {
    return new YourBean();
}

static class YourBean {

    @PostConstruct
    public void populateDatabase() {
        System.out.println("This will be called after Liquibase has finished");
    }

}
Run Code Online (Sandbox Code Playgroud)

  • 应用程序上下文刷新是单线程的。您如何进入并行初始化两个 bean 的情况? (2认同)
  • 正如您链接到的类的javadoc所说,如果要在启动时发出数据库请求,则需要使用标准的`SpringLiquibase`。 (2认同)