@Resource 注入为null
@Resource
@Resource可以用于注入对象
一般我们在编码中都会使用@Resource来注入一个实例对象,但是特殊情况下可能会是null。
这个时候可以用SpringUtil.getBean()来手动获取
代码示例
private HbaseProperties hbaseProperties = SpringUtil.getBean(HbaseProperties.class);
补充:为何会注入的是null
- 没有被spring管理,比如没有加@Component
- 如果对象是手动new出来的,那么对象里的成员变量依赖的类用@Resource注解注入就会是null。因为不受spring管理
@Component
public class A {
@Resource
B a;
public B getBStance(){
return b;
}
}
@Component
public class B {
private Integer i;
}
public class Test {
@Resource
A a;
public void test() {
A a1 = new A();
a1.getBStance();// 此为空
a.getBStance();// B实例
}
}
posted on 2022-04-26 17:04 Iversonstear 阅读(6722) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!