首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring数据- SpelEvaluationException -属性或字段在null上找不到

Spring数据- SpelEvaluationException -属性或字段在null上找不到
EN

Stack Overflow用户
提问于 2017-08-29 08:54:06
回答 1查看 985关注 0票数 0

我正在尝试使用动态配置Spring的注释。我尝试过的解决方案(thisthis)在我的情况下会产生以下错误:

代码语言:javascript
复制
Caused by: SpelEvaluationException: EL1007E: Property or field
'DbCreatorIndexNameConfig' cannot be found on null

所涉及的注释是:

代码语言:javascript
复制
@ComponentScan(basePackageClasses = DbCreatorIndexNameConfig.class)
@Document(indexName = "#{DbCreatorIndexNameConfig.indexName()}", type = "video", 
shards = 1, replicas = 0)
public class Video implements EsModel {
//...

问题中的豆子:

代码语言:javascript
复制
@Configuration("DbCreatorIndexNameConfig")
@ComponentScan(basePackageClasses = Video.class)
public class DbCreatorIndexNameConfig {

    @Value("video_default")
    public String indexName;

    @Bean
    public String indexName() {
        return indexName;
    }

    public void setIndexName(String indexName) {
        this.indexName = indexName;
    }
}

备注:

  • 我已经确保bean通过new AnnotationConfigApplicationContext(EsSpringTemplate.class, DbCreatorIndexNameConfig.class);连接到应用程序上下文中。
  • 我确保Spring知道所需的豆子。它们出现在annotationConfigApplicationContext.getBeanDefinitionNames()中。
  • indexName必须是常数。因此,似乎只能使用SpEL。

任何想法都是非常感谢的!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-08-29 09:20:15

按以下方式修改它:-必须使用“@”来访问spel中的bean

代码语言:javascript
复制
@Document(indexName = "#{@DbCreatorIndexNameConfig.indexName()}", type = "video", 
shards = 1, replicas = 0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45934683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档