You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot启动报错:无法解析kafka.bootstrap-servers占位符求助

解决Spring Boot中Could not resolve placeholder 'kafka.bootstrap-servers'的问题

作为Spring Boot新手遇到这种配置加载问题很正常,我帮你一步步排查解决:

1. 移除错误的@PropertySource注解

你在SenderConfig里加的@PropertySource(ignoreResourceNotFound = true, value = "file:application.properties")是问题根源之一。Spring Boot默认会自动加载classpath下的src/main/resources/application.properties,而你指定的file:application.properties是去项目根目录(不是resources文件夹)找这个文件,自然找不到正确的配置。直接删掉这个注解就好,Spring会自动帮你加载默认路径的配置文件。

修改后的SenderConfig:

@Configuration
public class SenderConfig {
    @Value("${kafka.bootstrap-servers}")
    private String bootstrapServers;

    @Bean
    public Map<String, Object> producerConfigs() {
        Map<String, Object> props = new HashMap<>();
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        return props;
    }

    // 补充:需要创建KafkaTemplate的Bean,否则Sender里的@Autowired会找不到
    @Bean
    public KafkaTemplate<String, String> kafkaTemplate() {
        return new KafkaTemplate<>(new DefaultKafkaProducerFactory<>(producerConfigs()));
    }
}

2. 检查Maven资源打包是否正确

你的pom.xml里的resources配置是对的,但可以验证下配置文件是否被正确打包到classpath:

  • 执行命令:mvn clean compile
  • 查看项目目录下的target/classes文件夹,确认里面有application.properties文件,并且文件里确实有kafka.bootstrap-servers = localhost:2020这一行。

如果没有,可能是Maven缓存问题,执行mvn clean install重新打包试试。

3. 确保Sender类被Spring管理

你的Sender类目前没有任何Spring注解,Spring无法扫描到它,里面的@Autowired KafkaTemplate也会失效。给它加上@Component注解:

@Component
public class Sender {
    private static final Logger LOGGER = LoggerFactory.getLogger(Sender.class);

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    public void send(String topic, String payload) {
        LOGGER.info("sending payload='{}' to topic='{}'", payload, topic);
        kafkaTemplate.send(topic, payload);
    }
}

4. 确认Kafka依赖已正确引入

Spring Boot 1.4.2.RELEASE需要对应版本的kafka starter依赖,在pom.xml的<dependencies>里加入:

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

因为你用了KafkaTemplate,这个依赖是必须的,Spring Boot的parent会帮你管理对应的版本。

最后验证

做完以上步骤后,重新启动项目:

  • 如果还是报错,检查application.properties里的键名是否正确(kafka.bootstrap-servers有没有拼写错误,比如少了s或者连字符错了)
  • 确保你的Kafka服务确实在localhost:2020运行(不过当前报错是配置找不到,所以先确保配置加载正常)

内容的提问来源于stack exchange,提问作者Trist49

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:32:04