这与@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);
}
Run Code Online (Sandbox Code Playgroud)
我有一个租户提供者类
@Component("tenantProvider")
public class TenantProvider {
public String getTenantId() {
--custome Thread local logic for getting a name
}
}
Run Code Online (Sandbox Code Playgroud)
和我的域名课程
@Document(collection = "#{@tenantProvider.getTenantId()}_device")
public class Device {
-- my fields here
}
Run Code Online (Sandbox Code Playgroud)
如你所见,我已经按照帖子中的说明创建了我的mongotemplate,但我仍然得到以下错误
线程"main"中的异常org.springframework.expression.spel.SpelEvaluationException:EL1057E:(pos 1):在上下文中没有注册bean解析器来解析对bean'tenantProvider'的访问
我究竟做错了什么?