是否可以例如在配置文件中动态(在运行时)为每个indexName指定@Document?还是有可能使@Document Spring环境(dev,prod)依赖?

谢谢!

最佳答案

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

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

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

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

之后,可以将索引注入(inject)到@Documentation批注中,如下所示:
@Document(indexName="#{@indexName}",type = "syslog_watcher")

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

此致

09-25 20:21