Spring 5.x / Spring boot 2.1.6 中的@Document 评估上下文未正确设置

Evaluation context not correctly set for @Document in Spring 5.x / Spring boot 2.1.6

我正在用最新的 Spring 引导 2.1.6 版本编写一个 Spring 引导应用程序。之前有一个问题,已经在 SO 和 Spring 的错误跟踪器上讨论过,其中 Spring EL 上下文无法访问 bean。

这本应在 Spring 4.x 版本中解决。但是,我也遇到了同样的问题

参考文献:

  1. SO thread 1
  2. SO thread 2
  3. Spring Data Bug 1043
  4. Spring Data Bug 525
  5. Spring Data Bug 1874

我也尝试了在实际修复之前建议的大部分解决方案。

现在我的代码有这样的注释 -

@Document("#{mongoCollectionNameResolver.getCollectionName('BANK')}")
//@Document("BANK")
public class Bank {
}

我已验证使用表达式中提到的名称正确创建了 bean。

我只是想问问社区,在我重新打开错误/使用 [=48= 打开一个新错误之前,我是否应该为 Spring 5.x 做更多的事情]数据mongo

当引用名称来自 SpEL 的 bean 时,它们需要加上前缀 @(请参阅 Spring Reference Guide)。话虽如此,这意味着您的 SpEL 表达式是错误的。

应该是#{@mongoCollectionNameResolver.getCollectionName('BANK')}