sql >> Databasteknik >  >> NoSQL >> MongoDB

Problem med @Qualifier

Prova detta:

public class MongoDbConfig {
    @Bean(name = {"sourceTemplate", "mongoTemplate"})
    public MongoTemplate getSourceTemplate() {
        MongoTemplate mt = new MongoTemplate(getMongoDbFactory(sourceServers, sourceDatabaseName));
        return mt;
    }

    @Bean(name="destinationTemplate")
    public MongoTemplate getDestinationTemplate() {
        MongoTemplate mt = new MongoTemplate(getMongoDbFactory(destinationServers, destinationDatabaseName));
        return mt;
    }
}

public class SourceDaoImpl implements SourceDao {
    @Autowired
    @Qualifier("sourceTemplate")
    private MongoOperations mongoOps;
}


public class DestinationDaoImpl implements DestinationDao {
    @Autowired
    @Qualifier("destinationTemplate")
    private MongoOperations mongoOps;
}

Uppdaterad

Egentligen metoden:

@Bean
    @ConditionalOnMissingBean
    public GridFsTemplate gridFsTemplate(MongoDbFactory mongoDbFactory,
            MongoTemplate mongoTemplate) {
        return new GridFsTemplate(
                new GridFsMongoDbFactory(mongoDbFactory, this.properties),
                mongoTemplate.getConverter());
    }

i MongoDataAutoConfiguration kräver en böna av MongoTemplate med namnet "mongoTemplate", som inte kan hittas, istället har du definierat dina egna 2 andra bönor "sourceMall" och "destinationTemplate".

Jag tror att detta kommer att lösa ditt problem!



  1. Är det möjligt att ändra standard TimeZone i MongoDB med Rails 3?

  2. MongoDB regex-fråga för att hitta unicode-ersättningstecken

  3. MongoDB:Aggregation med $cond med $regex

  4. Node.js Mongodb-native driver anslutningsdelning