使用spring-boot-2.1.3、spring-kafka-2.2.4,我希望有两个流配置(例如,拥有不同的application.id,或者连接到不同的集群,等等)。因此,我几乎根据文档定义了第一个流配置,然后添加了第二个流配置,使用了不同的名称,以及第二个StreamsBuilderFactoryBean(也使用了不同的名称):
@Bean(name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_CONFIG_BEAN_NAME)
public KafkaStreamsConfiguration kStreamsConfigs() {
Map<String, Object> props = new HashMap<>();
props.put(StreamsConfig.APPLICATION_ID_CONFIG, "myappId1000");
props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
//...
return new KafkaStreamsConfiguration(props);
}
@Bean(name = "myKappConfig")
public KafkaStreamsConfiguration myKafkaAppIdConfiguration() {
Map<String, Object> props = new HashMap<>();
props.put(StreamsConfig.APPLICATION_ID_CONFIG, "myappId9999");
props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
//...
return new KafkaStreamsConfiguration(props);
}
@Bean(name = "myKappConfigStreamBuilder")
public StreamsBuilderFactoryBean myAppStreamBuilder(
@Qualifier("myKappConfig") KafkaStreamsConfiguration myKafkaAppIdConfiguration) {
return new StreamsBuilderFactoryBean(myKafkaAppIdConfiguration);
}
然而,当我尝试运行该应用程序时,我得到:
在org.springframework.boot.autoconfigure.kafka.kafka.kafastreamsFactoryBeanConfigurer方法中的参数0需要一个bean,但找到了2个:&defaultkafastreamsanNotationDrivenConfiguration:由类路径资源[org/springframework/kafka/annotation/kafkastreamsBuilder]中的方法“defaultkafkastreamsBuilder”定义-&mykappconfigStreamsBuilder:由类路径资源
因为spring-boot autoconfigure中的代码:
@Bean
public KafkaStreamsFactoryBeanConfigurer kafkaStreamsFactoryBeanConfigurer(
StreamsBuilderFactoryBean factoryBean) {
return new KafkaStreamsFactoryBeanConfigurer(this.properties, factoryBean);
}
除了完全替换KafkaStreamsAnnotationDrivenConfiguration之外,我如何定义多个StreamsBuilderFactoryBean。或者,如何更改给定流的属性?
用@primary
标记一个工厂bean。
我在学习Spring Boot时遇到了一些编码问题;我想添加一个像Spring3.x那样的CharacterEncodingFilter。就像这样:
这么低的方法如下,有更好的建议吗?
我知道在DispatcherServlet之外使用请求范围bean需要一些配置,并且已经阅读了http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes-oth,但是还没有成功: 对于Servlet3.0+,这可以通过WebApplicationIni
我正在用Java 11和Maven创建一个测试框架,并且我已经为单独的测试构建了两个不同的运行程序。我只想运行一个配置文件,但它一直运行两个配置文件。以下是我的个人资料:
我试图用1.5.15.release版本在Spring Boot项目中配置LettuceConnectionFactory。
我想避免对象达到的最大对象图大小:840-错误。按照这个 此元素具有以下属性:maxDepth–控制在引擎大小采取任何操作之前可以访问多少链接对象。此属性是必需的。MaxDepthexceedBehavior–指定在调整对象图大小时超过最大深度时发生的情况: 这怎么能在ehcache3和springboot中设定。使用编程配置。我没有在ehcache 3.4的springboot中使用xml