mongodb multi tenacy spel com @Document
Isto está relacionado comExpressões do MongoDB e do SpEL em anotações do @Document
É assim que eu estou criando meu modelo mongo
@Bean
public MongoDbFactory mongoDbFactory() throws UnknownHostException {
String dbname = getCustid();
return new SimpleMongoDbFactory(new MongoClient("localhost"), "mydb");
}
@Bean
MongoTemplate mongoTemplate() throws UnknownHostException {
MappingMongoConverter converter =
new MappingMongoConverter(mongoDbFactory(), new MongoMappingContext());
return new MongoTemplate(mongoDbFactory(), converter);
}
Eu tenho uma classe de provedor de inquilino
@Component("tenantProvider")
public class TenantProvider {
public String getTenantId() {
--custome Thread local logic for getting a name
}
}
E minha classe de domínio
@Document(collection = "#{@tenantProvider.getTenantId()}_device")
public class Device {
-- my fields here
}
Como você pode ver, criei meu mongotemplate conforme especificado no post, mas ainda recebo o erro abaixo
Exceção no thread "main" org.springframework.expression.spel.SpelEvaluationException: EL1057E: (pos 1): Nenhum resolvedor de beans registrado no contexto para resolver o acesso ao bean 'tenantProvider'
O que estou fazendo de errado?