使用 yaml 中的 micronaut 框架配置 Cassandra
Configure Cassandra with micronaut framework from yaml
我正在使用 micronaut 框架,我正在尝试从 application.yml
配置 cassandra 数据访问
对于标准测试用例,我能够配置 datastax 驱动程序
cassandra:
default:
clusterName: "Test Cluster"
contactPoint: "192.168.99.100"
port: 9042
maxSchemaAgreementWaitSeconds: 20
ssl: false
但是我找不到一种方法来提供与方法 .withCredentials
一起使用的配置
中的实现
执行以下操作
@ConfigurationBuilder(allowZeroArgs = true, prefixes = { "with", "add" })
Cluster.Builder builder = Cluster.builder();
然而 withCredentials
方法需要 2 个参数 https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/Cluster.Builder.html#withCredentials-java.lang.String-java.lang.String-
public Cluster.Builder withCredentials(String username,
String password)
为该方法提供配置的 yaml 方式是什么?
使用@graeme-rocher 在 https://github.com/micronaut-projects/micronaut-core/issues/1106 中添加的新功能,我能够按如下方式进行操作:
import com.datastax.driver.core.Cluster
import io.micronaut.context.ApplicationContext
import io.micronaut.context.event.BeanCreatedEvent
import io.micronaut.context.event.BeanCreatedEventListener
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import javax.inject.Singleton
@Singleton
class ClusterBuilderListener implements BeanCreatedEventListener<Cluster.Builder> {
private static final Logger LOG = LoggerFactory.getLogger(ClusterBuilderListener.class)
@Override
Cluster.Builder onCreated(BeanCreatedEvent<Cluster.Builder> event) {
def builder = event.getBean()
ApplicationContext applicationContext = (ApplicationContext) event.getSource()
if(applicationContext.getEnvironment().getActiveNames().contains('pro') ){
builder.withCredentials("username", "password")
}
return builder
}
}
我正在使用 micronaut 框架,我正在尝试从 application.yml
配置 cassandra 数据访问
对于标准测试用例,我能够配置 datastax 驱动程序
cassandra:
default:
clusterName: "Test Cluster"
contactPoint: "192.168.99.100"
port: 9042
maxSchemaAgreementWaitSeconds: 20
ssl: false
但是我找不到一种方法来提供与方法 .withCredentials
执行以下操作
@ConfigurationBuilder(allowZeroArgs = true, prefixes = { "with", "add" })
Cluster.Builder builder = Cluster.builder();
然而 withCredentials
方法需要 2 个参数 https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/Cluster.Builder.html#withCredentials-java.lang.String-java.lang.String-
public Cluster.Builder withCredentials(String username,
String password)
为该方法提供配置的 yaml 方式是什么?
使用@graeme-rocher 在 https://github.com/micronaut-projects/micronaut-core/issues/1106 中添加的新功能,我能够按如下方式进行操作:
import com.datastax.driver.core.Cluster
import io.micronaut.context.ApplicationContext
import io.micronaut.context.event.BeanCreatedEvent
import io.micronaut.context.event.BeanCreatedEventListener
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import javax.inject.Singleton
@Singleton
class ClusterBuilderListener implements BeanCreatedEventListener<Cluster.Builder> {
private static final Logger LOG = LoggerFactory.getLogger(ClusterBuilderListener.class)
@Override
Cluster.Builder onCreated(BeanCreatedEvent<Cluster.Builder> event) {
def builder = event.getBean()
ApplicationContext applicationContext = (ApplicationContext) event.getSource()
if(applicationContext.getEnvironment().getActiveNames().contains('pro') ){
builder.withCredentials("username", "password")
}
return builder
}
}