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

Spring项目调用FeignClient方法时抛出NullPointerException异常

Spring调用自定义FeignClient触发空指针异常修复

问题相关代码

FeignClient定义

@FeignClient(url="http://localhost:8080", name="feignClient")
public interface CallFeignClient {

    @RequestMapping(path = "/start")
    public String start();

}

业务Service类

@Service
public class Call {

    @Autowired
    private CallFeignClient callFeignClient ;

    public Call() {

    }

    public void call() {
        callFeignClient.start();
    }
} 

根因排查与修复方案

按优先级从高到低排查以下问题:

  • 未开启Feign客户端扫描
    Spring Boot启动类必须添加@EnableFeignClients注解,否则Spring不会识别@FeignClient标记的接口,不会生成代理Bean注册到容器,注入的属性自然为null。修复示例:
    @SpringBootApplication
    @EnableFeignClients
    public class ProjectApplication {
        public static void main(String[] args) {
            SpringApplication.run(ProjectApplication.class, args);
        }
    }
    
  • Feign接口不在扫描包范围内
    如果Feign接口所在包不是启动类所在包的同层级/子包,默认扫描规则无法覆盖,需要手动指定扫描路径:
    // 替换为实际Feign接口所在的包路径
    @EnableFeignClients(basePackages = "com.example.project.feign")
    
  • 未引入Feign起步依赖
    未引入OpenFeign依赖时相关注解不会生效,Maven项目需在pom.xml中添加:
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    
  • 业务类未交给Spring容器管理
    如果是手动通过new Call()创建Call类实例,对象不受Spring管控,@Autowired标记的属性不会被注入,永远为null。必须通过依赖注入的方式从容器获取Call实例,禁止手动new被Spring注解标记的类。
  • 依赖注入完成前提前调用Feign方法
    Spring实例化Bean的流程是先执行构造方法,再完成属性注入,如果在构造方法中直接调用callFeignClient.start(),执行时属性还未赋值,必然触发空指针。如果需要在Bean初始化阶段调用Feign方法,推荐改用构造器注入的方式,保证实例化时依赖已经传入:
    @Service
    public class Call {
        private final CallFeignClient callFeignClient;
    
        // 构造器注入,实例化时就保证依赖不为空
        public Call(CallFeignClient callFeignClient) {
            this.callFeignClient = callFeignClient;
            // 此处调用callFeignClient.start()不会触发空指针
        }
    
        public void call() {
            callFeignClient.start();
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 09:51:17