CqlSessions 应该用@ApplicationScoped 注解吗?

问题描述 投票:0回答:1

我注意到 Springboot 将

CqlSession
公开为具有默认范围的 bean(每个上下文一个 bean)。 https://github.com/spring-projects/spring-boot/blob/c3c82bd220b39998e5dc483db55532092ace1b3b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfiguration .java#L105-L110

    @Bean
    @ConditionalOnMissingBean
    @Lazy
    public CqlSession cassandraSession(CqlSessionBuilder cqlSessionBuilder) {
        return cqlSessionBuilder.build();
    }

同时 Cassandra 文档指出: https://docs.datastax.com/en/developer/java-driver/4.9/manual/core/

CqlSession ...它是线程安全的,您应该创建一个实例(每个目标 Cassandra 集群),并在整个应用程序中共享它

那么用

CqlSession
注释
@ApplicationScoped
不是有意义吗?

java spring-boot cassandra
1个回答
0
投票

我同意用

@ApplicationScoped
进行注释是有意义的,因为
CqlSession
bean 应该只创建一次。干杯!

© www.soinside.com 2019 - 2024. All rights reserved.