我正在尝试实现自定义 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.
我必须使用我的实现在 META-INF/services
中创建 liquibase.lockservice.LockService
文件并解决问题。
关于java - Spring Boot + Liquibase - 自定义 LockService 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70987572/