我正在使用弹簧启动和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的任何属性的值? –