@Resource 注入为null

@Resource

@Resource可以用于注入对象
一般我们在编码中都会使用@Resource来注入一个实例对象,但是特殊情况下可能会是null。
这个时候可以用SpringUtil.getBean()来手动获取

代码示例

private HbaseProperties hbaseProperties = SpringUtil.getBean(HbaseProperties.class);

补充:为何会注入的是null

  1. 没有被spring管理,比如没有加@Component
  2. 如果对象是手动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   Iversonstear  阅读(6722)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示