Mongodb Multi Tenacy Spel mit @Document
Das hängt zusammen mitMongoDB- und SpEL-Ausdrücke in @ Document-Anmerkungen
Auf diese Weise erstelle ich meine Mongo-Vorlage
@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);
}
Ich habe eine Mieterklasse
@Component("tenantProvider")
public class TenantProvider {
public String getTenantId() {
--custome Thread local logic for getting a name
}
}
Und meine Domainklasse
@Document(collection = "#{@tenantProvider.getTenantId()}_device")
public class Device {
-- my fields here
}
Wie Sie sehen, habe ich mein Mongotemplate wie im Beitrag angegeben erstellt, aber es wird weiterhin der folgende Fehler angezeigt
Ausnahme im Thread "main" org.springframework.expression.spel.SpelEvaluationException: EL1057E: (pos 1): Es wurde kein Bean-Resolver im Kontext registriert, um den Zugriff auf das Bean 'tenantProvider' aufzulösen.
Was mache ich falsch?