加载中...
加载中...
Spring注入的属性为null可能的情况

Spring注入的属性为null可能的情况 原创


Spring注入的属性为null可能的情况,使用注解方式。

一、保证Bean能够交付给Spring容器

1、你的组件上面是否加入了合适的注解。例如:@Service, @Component等。

2、检查一下你context-scan扫描器配置的路径是否正确。(SpringBoot检查一下你的包是否和主入口程序在一个目录下,并且检@ComponentScan配置的路径是否正确)

二、检查实例化的方式

1、很低级问题,但是一不注意就犯了。检查是不是new了一个对象,这样的话就绕过了容器的依赖注入过程,也可能出现获取不到应有的属性这种情况。
说明:Spring是一个bean的容器,由容器负责对象的初始化和依赖注入。当我们想要从中获取一个Bean的实例时,就从Spring容器中获取。

三、检查注入的位置

1、把@Autowired注解加在了一个静态属性上,注入为空。
说明:Spring帮我们做属性的自动注入,是在帮助我们实例化Bean之后完成的。而static修饰该属性是归属于类而不是实例的。当Spring我们想给static属性注入值的时候,对象还没创建,这种情况一定会出现注入为空的情况。
2、在应用的Filter或Listener中使用了@Autowired ,注入为空
web容器启动是按照一定顺序的,即:Listener --> Filter -->Servlet。

因为Filter和Listener加载顺序优先于spring容器初始化实例,所以会出现null。Spring的入口就在Servlet里。

可以用ApplicationContext根据bean名称(注意名称为实现类而不是接口)去获取bean


没有更多推荐了 [去首页]
image
文章
357
原创
284
转载
73
翻译
0
访问量
199056
喜欢
47
粉丝
6
码龄
5年
资源
0

文章目录

加载中...
0
0