我正在使用彈簧啓動和Liquibase。 使用這個網址爲指導彈簧啓動與Liquibase超載屬性
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/
在pom.xml
,下面的條目存在,使春天開機知道liquibase。
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
並將changelog文件放在資源文件夾中。 db.changelog-master.xml
現在,Spring引導首先要在classpath中查找db.changelog-master.yaml並拋出異常。
找不到的changelog位置:類路徑的資源[DB /變化/ db.changelog-master.yaml
爲了解決這個問題,我已經在我的課加豆狀下方,並試圖設置的changelog proprty。
@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' 豆:中 自動裝配依賴注入失敗;嵌套的異常是 org.springframework.beans.factory.BeanCreationException:無法 自動裝配字段: org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties sample.data.jpa.SampleDataJpaApplication.properties;嵌套異常 是org.springframework.beans.factory.NoSuchBeanDefinitionException:無類型的 排位豆 [org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties] 找到依賴性:預期至少1豆,其有資格作爲 自動裝配候選爲此依賴。依賴註解: {@ org.springframework.beans.factory.annotation.Autowired(所需=真)}
引起:org.springframework.beans.factory.BeanCreationException: 未能進行自動裝配字段: org.springframework .boot.autoconfigure.liquibase.LiquibaseProperties sample.data.jpa.SampleDataJpaApplication.properties;嵌套異常 是org.springframework.beans.factory.NoSuchBeanDefinitionException:無類型的 排位豆 [org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties] 找到依賴性:預期至少1豆,其有資格作爲 自動裝配候選爲此依賴。依賴註釋: {@ org.springframework.beans.factory.annotation.Autowired(必需=真)}
請輸入這裏,爲什麼我收到此異常或有任何其他可用的辦法重寫相同的類,以便我可以更改liquibase屬性的changeLog屬性。
嗨Dave,感謝您的信息。我在application.properties中使用了liquibase.changeLog = classpath:/db/changelog/db.changelog-master.xml,它對我來說非常棒。這意味着,我可以通過在application.properties中提及相同的值來設置我的類路徑中任何bean的任何屬性的值? –