これは 、@Document アノテーションの MongoDB および SpEL 式に関連しています。
これは、私の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);
}
テナント プロバイダー クラスがあります
@Component("tenantProvider")
public class TenantProvider {
public String getTenantId() {
--custome Thread local logic for getting a name
}
}
そして私のドメインクラス
@Document(collection = "#{@tenantProvider.getTenantId()}_device")
public class Device {
-- my fields here
}
ご覧のとおり、投稿で指定されているようにmongotemplateを作成しましたが、それでも以下のエラーが発生します
スレッド「メイン」org.springframework.expression.spel.SpelEvaluationException での例外: EL1057E:(pos 1): Bean 'tenantProvider' へのアクセスを解決するコンテキストに Bean リゾルバーが登録されていません
私は何を間違っていますか?