Spring-boot liquibase 集成

标签 spring liquibase spring-boot

虽然我提出了问题 https://github.com/spring-projects/spring-boot/issues/662提供一个 spring-boot-starter-liquibase-starter 模块,今天我发现已经有某种集成。

Spring Boot 已经包含 https://github.com/spring-projects/spring-boot/tree/master/spring-boot/src/main/java/org/springframework/boot/liquibase使用 Spring Boot Liquibase 特定的服务定位器。
从这段代码和 Spring Boot 引用指南中,我无法弄清楚 Spring Boot 已经提供了什么。

但是我还发现,当添加 Gradle 依赖项“org.liquibase:liquibase-core”(注意没有版本号)时,它会自动解析 liquibase 3.1.1,因此 Spring Boot 特定的依赖项解析器在这里做了一些“魔术”。

任何人都知道 Spring Boot 在 Liquibase 方面提供了什么样的集成?
我想在应用程序启动期间自动执行迁移(如果需要)。

最佳答案

Spring Boot 知道 Liquibase 并在类路径中检测到它(因此魔术依赖解析)。 Liquibase 有一个 SPI 用于创建我们以特殊方式实现的服务,因此它们可以使用 Spring Boot 支持的可执行 JAR 格式。因此,简而言之,如果它存在并且您将其添加到您的上下文中,它将起作用(如简要提到的 in the docs )。但是没有开箱即用的“自动配置”(如果您想要一个新功能,我们可以使用您的 github 问题来管理它)。

关于Spring-boot liquibase 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23033964/

相关文章:

java - 步骤后的 Spring 批处理流/拆分

java - Tomcat Web 应用程序适用于 Windows 而不是 Linux

java - Spring Boot中如何划分开发环境和生产环境的Liquibase包结构?

java - 如何使用 Spring Boot 指定 BeanNamingStrategy?

java - JPA - 多对一,其中子级具有父级 ID

Spring MVC SessionAttributes 与 ModelAttribute 用法

Java Spring : Cancelling a Future

jhipster - 使用 JDL 修改 JHipster 实体的正确过程

java - Liquibase 是否需要写权限才能获取锁?

java - spring boot 1.5.8.RELEASE导入Java 8编译类