【发布时间】:2021-11-22 13:09:08
【问题描述】:
我正在尝试从 application.yml 中检索值。下面的最后一行将 kafkaConfig 显示为 null,并且无法读取。如何正确设置 Kafka 配置和代码以从 json 文件中读取?我们正在使用 @Data 而不是 getter/setter。
KafkaConfig.java
@Configuration
@ConfigurationProperties("kafka")
@Data
public class KafkaConfig {
private String topic;
private String event;
}
Application.yml
kafka:
topic: "testTopic"
event: "testEvent"
KafkaProducerBeans.java
@Component
public class KafkaProducerBeans {
@Autowired
private KafkaConfig kafkaConfig;
public KafkaProducerBeans(KafkaConfig kafkaConfig) {
this.kafkaConfig = kafkaConfig;
}
@Bean(name = "kafkaTestClient")
public String getData() {
return kafkaConfig.getTopic(); // final line is creating null for kafka Config
}
资源:https://codingnconcepts.com/spring-boot/spring-configuration-properties-using-yml/
【问题讨论】:
-
确保在您的主助推类上您使用的是
@SpringBootApplication,它有@EnableAutoConfiguration,这有助于自动启用您的配置,否则您需要使用@EnableConfigurationProperties来明确启用它。 -
与其定义这些属性,不如阅读
spring-kafkaconfig - docs.spring.io/spring-boot/docs/current/reference/html/…上的文档 -
是的@OneCricketeer 我们公司正在使用 Kafka 包装器,所以他们希望我以这种方式使用它
标签: java spring-boot javabeans spring-kafka