mongodb multi tenacy spel con @Document
Esto está relacionado conExpresiones de MongoDB y SpEL en las anotaciones de @Document
Así es como estoy creando mi plantilla 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);
}
Tengo una clase de proveedor de inquilinos
@Component("tenantProvider")
public class TenantProvider {
public String getTenantId() {
--custome Thread local logic for getting a name
}
}
Y mi clase de dominio
@Document(collection = "#{@tenantProvider.getTenantId()}_device")
public class Device {
-- my fields here
}
Como ves, he creado mi mongotemplate como se especifica en la publicación, pero aún así obtengo el siguiente error
Excepción en el subproceso "main" org.springframework.expression.spel.SpelEvaluationException: EL1057E: (pos 1): No se ha registrado resolución de beans en el contexto para resolver el acceso al bean 'tenantProvider'
¿Qué estoy haciendo mal?