带有liquidbase过载属性的弹簧靴



我使用Spring boot liquidbase 。使用此url作为指导

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/

pom.xml中,存在以下条目,以便spring boot知道 liquidbase

<dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-core</artifactId>
</dependency>

并把changelog文件放到resources文件夹中。db.changelog-master.xml

现在Spring启动第一次尝试找到db.changelog-master。在类路径中抛出异常

无法找到更改日志的位置:类路径资源[db/changelog/db.changelog-master]。yaml

为了解决这个问题,我在我的类中添加了如下的bean,并尝试设置changeLog属性。

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class SampleDataJpaApplication {

@Autowired
LiquibaseProperties properties;
@Autowired
private DataSource dataSource;
@Bean
public SpringLiquibase liquibase() {
    SpringLiquibase liquibase = new SpringLiquibase();
    properties.setChangeLog("classpath:/db/changelog/db.changelog-master.xml");
    liquibase.setChangeLog(this.properties.getChangeLog());
    liquibase.setContexts(this.properties.getContexts());
    liquibase.setDataSource(this.dataSource);
    liquibase.setDefaultSchema(this.properties.getDefaultSchema());
    liquibase.setDropFirst(this.properties.isDropFirst());
    liquibase.setShouldRun(this.properties.isEnabled());
    return liquibase;
}
public static void main(String[] args) throws Exception {
    Logger logger = LoggerFactory.getLogger("SampleDataJpaApplication");
    SpringApplication springApplication = new SpringApplication();
    springApplication.run(SampleDataJpaApplication.class, args);
}
}

,但它是失败的消息。

org.springframework.beans.factory。BeanCreationException:错误创建名为'sampleDataJpaApplication'的bean:注入自动连接依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException: Could not自动装配领域:org.springframework.boot.autoconfigure.liquibase.LiquibasePropertiessample.data.jpa.SampleDataJpaApplication.properties;嵌套的异常is org.springframework.beans.factory.NoSuchBeanDefinitionException: No类型限定bean(org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties)为依赖项找到:期望至少有1个bean符合此依赖项的自动候选。依赖项的注释:{@org.springframework.beans.factory.annotation.Autowired(要求= true)}

由:org.springframework.beans.factory.BeanCreationException引起:无法自动连接字段:org.springframework.boot.autoconfigure.liquibase.LiquibasePropertiessample.data.jpa.SampleDataJpaApplication.properties;嵌套的异常is org.springframework.beans.factory.NoSuchBeanDefinitionException: No类型限定bean(org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties)为依赖项找到:期望至少有1个bean符合此依赖项的自动候选。依赖项的注释:{@org.springframework.beans.factory.annotation.Autowired(要求= true)}

请在这里提供输入,为什么我得到这个异常,或者是否有任何其他可用的方法来覆盖相同的类,以便我可以更改liquidbase属性的changeLog属性。

我不完全确定您的更改日志的确切运行时路径是什么,但是为什么不使用" liquidbase "。*"属性在application.properties ?"您应该能够忽略Liquibase @Bean,让Boot为您完成。

如果你想添加自己的Liquibase @Bean,那么接受提示并确保你也定义了LiquibaseProperties bean(例如通过声明@EnableConfigurationProperties(LiquibaseProperties.class))。

相关内容

  • 没有找到相关文章

最新更新