Kul*_*sad 7 liquibase spring-boot
我正在使用Spring boot和Liquibase.使用此网址作为指南
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/
在pom.xml,下面的条目存在,以便spring boot知道liquibase.
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
并将changelog文件放在资源文件夹中.db.changelog-master.xml
现在Spring引导首先在类路径中找到db.changelog-master.yaml并抛出这样的异常.
找不到changelog位置:类路径资源[db/changelog/db.changelog-master.yaml
为了解决问题,我在我的课程中添加了如下所示的bean,并尝试设置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);
}
}
Run Code Online (Sandbox Code Playgroud)
但它没有消息.
org.springframework.beans.factory.BeanCreationException:创建名为'sampleDataJpaApplication'的bean时出错:注入自动连接的依赖项失败; 嵌套异常是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]的限定bean依赖:预期至少有1个bean符合此依赖关系的autowire候选者.依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}
引起: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]的限定bean依赖:预期至少有1个bean符合此依赖关系的autowire候选者.依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}
请在这里提供输入,为什么我得到此异常或是否有任何其他可用的方法来覆盖相同的类,以便我可以更改liquibase属性的changeLog属性.
Dav*_*yer 12
我不完全确定更改日志的确切运行时路径是什么,但为什么不直接使用"liquibase.*"属性application.properties?您应该可以省略Liquibase @Bean并让Boot为您执行此操作.
如果您希望自己添加,请 Liquibase @Bean接受提示并确保定义一个LiquibasePropertiesbean(例如通过声明@EnableConfigurationProperties(LiquibaseProperties.class)).
| 归档时间: |
|
| 查看次数: |
16262 次 |
| 最近记录: |