正在尝试创建面向 java.lang.ClassNotFoundException 的动态 ES 索引:org.springframework.data.spel.ExpressionDependencies

Trying to create dynamic ES Index facing java.lang.ClassNotFoundException: org.springframework.data.spel.ExpressionDependencies

使用 2.3.9.RELEASE 添加了以下依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-commons</artifactId>
</dependency>

正在尝试创建动态 ES 索引

@Document(indexName = "test_#{@commonConfig.getEnv()}_v1")
@Component("commonConfig")
public class CommonConfig {

    @Value("${spring.profiles.active}")
    private String env;

    public String getEnv() {
        return env.toLowerCase(Locale.ROOT);
    }
}

Boot 2.3.x 不再受支持https://spring.io/projects/spring-boot#support 最后一个版本是去年夏天的 2.3.12。

在任何情况下,Boot 2.3.x 使用 spring-data-commons 2.3.x(2.3.9 引入 2.3.7)。

ExpressionDependencies 直到 2.4 才被添加到 spring-data-commons,所以你有一些不匹配的依赖关系。