首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j Liquigraph数据源-需要一个匹配的bean,但找到了2个

Neo4j Liquigraph数据源-需要一个匹配的bean,但找到了2个
EN

Stack Overflow用户
提问于 2021-05-29 18:09:07
回答 1查看 43关注 0票数 0

在SpringBoot Maven应用程序中,我配置了两个数据源-一个Neo4j用于液态图

代码语言:javascript
复制
@Bean
@LiquigraphDataSource
public DataSource neo4jDataSource() {
    final HikariConfig config = new HikariConfig();
    config.setJdbcUrl(jdbcServerDatabaseUri);
    config.setUsername(username);
    config.setPassword(password);
    return new HikariDataSource(config);
}

和一个用于Liquibase的PostgreSQL

代码语言:javascript
复制
@Bean
@LiquibaseDataSource
public DataSource postgreSQLDataSource() {
    DataSource dataSource = DataSourceBuilder.create()
            .username(username)
            .password(password)
            .url(databaseUrl)
            .build();
    return dataSource;
}

但在应用程序启动期间,它会失败,并出现以下异常:

代码语言:javascript
复制
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'matrixServiceImpl': Unsatisfied dependency expressed through field 'session'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.data.neo4j.repository.config.Neo4jOgmEntityInstantiatorConfigurationBean#0': Cannot resolve reference to bean 'sessionFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [com/decisionwanted/domain/configuration/Neo4jConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.neo4j.ogm.session.SessionFactory]: Factory method 'sessionFactory' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.liquigraph.spring.starter.LiquigraphAutoConfiguration$LiquigraphConfiguration': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.liquigraph.spring.starter.LiquigraphAutoConfiguration$LiquigraphConfiguration$$EnhancerBySpringCGLIB$$cb17993a]: Constructor threw exception; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected single matching bean but found 2: postgreSQLDataSource,neo4jDataSource
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)

我做错了什么?如何修复它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-31 20:44:25

我使用以下内容重新配置了Liquigraph:

代码语言:javascript
复制
@Bean
@ConfigurationProperties(
        prefix = "liquigraph",
        ignoreUnknownFields = false
)
public LiquigraphProperties liquigraphProperties() {
    return new LiquigraphProperties();
}

@Bean
public SpringLiquigraph liquigraph(ResourceLoader loader, LiquigraphProperties properties) {
    String jdbcServerDatabaseUri = properties.getUrl();

    final HikariConfig config = new HikariConfig();
    config.setJdbcUrl(jdbcServerDatabaseUri);
    config.setUsername(properties.getUser());
    config.setPassword(properties.getPassword());
    DataSource dataSource = new HikariDataSource(config);

    SpringChangelogLoader changelogLoader = new SpringChangelogLoader(loader);
    return new SpringLiquigraph(dataSource, changelogLoader, properties.getChangeLog(), properties.getExecutionContexts());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67750111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档