当前位置: 首页 > 知识库问答 >
问题:

具有液基过载特性Spring靴

巫马越彬
2023-03-14

我正在使用Spring靴和液体基地。使用此url作为指南

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>

并将changelog文件放在resources文件夹中。db.changelog-master.xml

为了解决这个问题,我在我的类中添加了如下所示的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);
}

}

但它在传递信息方面正在失败。

org.springframework.beans.factory.BeanCreationException:创建名为“sample datajpaapplication”的bean时出错:注入autowired依赖项失败;嵌套异常为org.springframework.beans.factory.beanCreationException:无法自动连接字段:org.springframework.boot.autocigure.liquiBase.liquiBaseProperties sample.data.jpa.sampleDatajpaApplication.Properties;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未找到依赖项得[org.springframework.boot.autocigure.LiquiBase.LiquiBaseProperties]类型得合格bean:需要至少一个符合此依赖项自动候选条件得bean.依赖项注释:{@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.autocigure.LiquiBase.LiquiBaseProperties]类型得合格bean:需要至少一个符合此依赖项自动候选条件得bean.依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(required=true)}

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

共有1个答案

皇甫琛
2023-03-14

我不完全确定变更日志的确切运行时路径是什么,但为什么不直接使用application.properties中的“liquibase.*”属性呢?您应该可以省去LiquiBase@bean而让Boot来完成它。

如果您希望添加自己的LiquiBase@bean,那么接受提示并确保您也定义了LiquiBasePropertiesbean(例如,通过声明@enableConfigurationProperties(LiqubaseProperties.class))。

 类似资料:
  • 尽管我提出了问题https://github.com/spring-projects/spring-boot/issues/662为了提供一个spring boot starter liquibase starter模块,今天我发现已经有了某种集成。 Spring Boot已经包含https://github . com/spring-projects/spring-boot/tree/maste

  • 有没有一些更简单的方法来实现这一点呢?我本以为Liquibase能够生成这些前提条件。 谢谢

  • 我正在建立liquibase,以便在一个新的Spring Boot应用程序中管理我的数据库。在运行某些集成测试后,我需要类路径中的liquibase依赖项来重置数据库状态。在我的测试中,我不希望在应用程序上下文初始化期间通过spring auto config启用liquibase。我尝试将liquiBase.enabled=false添加到application.properties,但是当我调

  • Xdebug的基本功能包括在错误条件下显示堆栈轨迹,最大嵌套级别和时间跟踪。 相关设置参数 xdebug.default_enable 类型:boolean,默认值:1 参数设置为1时,在错误事件中会显示堆栈跟踪信息。您可以使用xdebug_disable()来禁用显示你的代码的栈跟踪。由于这是Xdebug的基本功能之一,建议将此设置设置为1。 xdebug.force_display_error

  • 难道没有任何工具或命令行可以自动创建changelog文件吗?我使用的JHipster可以正确地为新实体创建changelogs,但正如这里所说的,JHipster不会为更新的实体生成新的changelogs,所以我想知道它们是否是生成额外changelogs的工具?实际上,我是通过手工编写xml文件来创建changelogs,这似乎并不是非常高效。 谢谢你的阅读。

  • 我使用Spring boot和Spring security,以及Spring Session和redis进行身份验证和授权。有两个独立的项目正在运行,我想通过HTTP