java - Spring Boot + Liquibase - 自定义 LockService 类

标签 java spring spring-boot liquibase

我正在尝试实现自定义 LockService 类,就像这个答案中所说的那样:https://stackoverflow.com/a/15567073/5182320

package liquibase.ext;

import liquibase.exception.DatabaseException;
import liquibase.lockservice.StandardLockService;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;

@Slf4j
@Configuration
public class TimeoutLockService extends StandardLockService {
    @SneakyThrows
    @Override
    public void waitForLock() {
        forceReleaseLock();
    }

    @Override
    public int getPriority() {
        return super.getPriority() + 1;
    }

    @Override
    public void init() throws DatabaseException {
        super.init();
        log.info("Init called");
    }
}

将该类放入包liquibase.ext

但是当我运行我的应用程序时,它会忽略此类并仍在尝试获取锁。

最佳答案

我试图做类似的事情,并且遇到了类似的问题,即使我的更改位于包 liquibase.ext 中,但我的更改没有被拾取。我正在使用 liquibase 4.3.5,以下文档对我有帮助。

Starting with 4.0, we switched to the standard java.util.ServiceLoader system to find extension classes.

https://docs.liquibase.com/tools-integrations/extensions/extension-upgrade-guides/lb-4.0-upgrade-guide.html

我必须使用我的实现在 META-INF/services 中创建 liquibase.lockservice.LockService 文件并解决问题。

enter image description here

关于java - Spring Boot + Liquibase - 自定义 LockService 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70987572/

相关文章:

java - 文本搜索不适用于 Spring Boot MongoDB

java - 您如何看待一种算法优于另一种算法的地方

java - Java的HttpMethod中的recycle方法有什么替代方法?

Java - 使程序从文件加载选项的最佳方法是什么?

java - 如何将所需格式的值传递给 @RequestParam 中的 Date 对象?

spring - Spring Boot Cloud Kubernetes配置不适用于多个Pod

java - mongodb + java + iso 日期搜索

java - 无法通过链接到达 Spring

java - Spring Data Neo4j 4 中的动态属性

java - ClassNotFoundException : javax. wsdl.extensions.ExtensibilityElement 错误