当前位置: 首页 > 知识库问答 >
问题:

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

班昱
2023-03-14

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

液化完成后是否可以执行方法?

像Bean后处理器?

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

共有2个答案

魏熠彤
2023-03-14

另一个解决方案是让LiquiBase将这些东西插入到数据库中——但仅当在开发模式下运行时。

您可以在LiquiBase中通过指定上下文="属性来完成此操作。

另一种选择是,当dbms=“h2db”时,只允许LiquiBase将此测试数据插入数据库(忘记选择h2的确切字符串,请查看文档!)

两者都是变更集上的属性。

对于这种情况,这是我自己喜欢的解决方案。

东方灵均
2023-03-14

Spring Boot自动配置名为liquibase的SpringLiquibase bean。任何依赖于这个bean的bean都将在Liquibase完成后创建。例如,可以使用@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");
    }

}
 类似资料:
  • 有没有一种方法可以让发出数据,并且当它发出数据时(或者当它完成时)以异步方式使用该数据触发? 我的问题与此非常相似,但我试图异步调用Completable。 这是我试图实现的一个微不足道的例子: 我看到订阅映射中的Completable允许我以某种方式完成这项任务,但我不知道如何以正确的方式处理它(因为在活动中不调用此方法)。 非常感谢您的帮助,谢谢!

  • 我正在尝试使用Complettable Future异步运行两个任务。该程序异步运行,因此a()和b()以任何顺序同时首先运行。但是c()只能在a()或b()之一完成后运行 我不熟悉CompletableFuture API,有没有办法检查其中一个任务是否完成并调用下一个方法C?

  • 我有一个场景,我想并行执行三个不同的异步任务。一旦这三个任务都完成了,我希望调用方法知道这一点,并调用自己的完成处理程序。 下面是一个非常简化的逻辑版本: 我可以很容易地将处理程序链接在一起,但是这样任务可能会花费更长的时间,代码也会很糟糕。 我考虑的另一个项目是一个简单的计数器,它在每个任务完成时递增,然后一旦它达到3,就会通过这样的方式调用包装任务(): 我考虑过的另一个选项是创建一个操作队列

  • 问题内容: 我对React JS非常陌生(例如,从今天开始)。我不太了解setState的工作方式。我将React和Easel JS结合起来,根据用户输入绘制网格。这是我的JS bin:http://jsbin.com/zatula/edit? js,输出 这是代码: 当您使用下拉菜单之一更改行数或列数时,您会在JS bin中看到,第一次不会发生任何事情。下次更改下拉值时,网格将绘制到先前状态的行

  • 我是RxJava新手。我想从给定集合中下载每个TempoAccount实体的一些数据,并将其存储在map accountsWithProjects中。当上一个onNext(TempoAccount TempoAccount)的代码完成时,我想调用filterAccountsWithProjects(accountsWithProjects)方法。有什么简单的方法可以实现吗? 问题:在上面的代码中,