提问者:小点点

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


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

这应该在Spring 4. x版本中得到解决。然而,我面临着同样的问题

参考资料:

  1. SO线程1
  2. SO线程2
  3. Spring数据错误1043
  4. Spring数据错误525
  5. Spring数据错误1874

我已经尝试了大多数在实际修复之前建议的解决方案。

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

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

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

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


共1个答案

匿名用户

当引用名称来自SpEL的bean时,它们需要以@为前缀(参见Spring参考指南)。话虽如此,这意味着您的SpEL表达式是错误的。

它应该是#{@mongoCollection NameResolver. getCollection Name('BANK')}