springboot中bean注入失败的四种原因


1、被注入的对象没有被spring扫描到,此时需要添加对应的包扫描路径。

@ComponentScan
@SpringBootApplication
@ComponentScan("redis.clients.jedis")
public class SeckillApplication {

    public static void main(String[] args) {
        SpringApplication.run(SeckillApplication.class, args);
    }

}

2、需要自动注入的对象不是spring加载,而是new的方式创建

3. 需要自动注入的对象不是spring加载,而是采用反射的方式创建

这种情况和第二种情况类似,通常在一些框架调用的时候,采用的对象创建方式,为了避免对spring的依赖,采用类的反射方式进行创建。

4. 使用springboot的devtools热部署加载的类

热部署加载的类使用的加载器和spring容器的加载器不同,所以热部署加载器加载的类,访问不到spring容器中的对象。

相关