小编典典

在运行时定义的Spring Data Elasticsearch @Document indexName

spring-boot

是否有可能(例如在运行时)通过配置文件动态指定indexName每个对象的@Document?还是有可能使@DocumentSpring环境(dev,prod)依赖?

谢谢!


阅读 1487

收藏
2020-05-30

共1个答案

小编典典

@Document批注不允许直接在参数中传递索引名。但是我找到了解决方法。

在配置类中,我创建了一个返回字符串的Bean。在这个字符串中,我用@Value注入了索引名:

@Value("${etrali.indexname}")
private String indexName;

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

之后,可以将索引注入到@Documentation批注中,如下所示:

@Document(indexName="#{@indexName}",type = "syslog_watcher")

它对我有用,希望对您有帮助。

最好的祝福

2020-05-30