springCloud中调用@Autowired注入实体类为null,已经开始抓耳挠腮了

我在我SpringCloud项目里面创建了一个实体类,用来获取application.yml配置文件属性

@Data
@Component
@ConfigurationProperties(prefix = "oid.port")
public class SwitchOid {
    private String ifNumber;        //接口数量
    private String ifDescr;         //接口名称
    private String ifInOctets;      //接口入口方向通过的总字节数
    private String ifOutOctets;     //接口出口方向通过的总字节数
}
oid:
  port:
    # 系统中网络端口的数量
    ifNumber: 1.3.6.1.2.1.2.1
    # 所有端口名称
    ifDescr: 1.3.6.1.2.1.2.2.1.2
    # 端口入口方向通过的总字节数
    ifInOctets: 1.3.6.1.2.1.2.2.1.10
    # 端口出口方向通过的总字节数
    ifOutOctets: 1.3.6.1.2.1.2.2.1.16

我在测试类中测试成功,有返回值且都正确

@SpringBootTest(classes = YyhlCloudSnmpApplication.class)
class YyhlCloudSnmpApplicationTests {

    @Autowired
    private SwitchOid switchOid;

    @Test
    void contextLoads() {
        System.out.println(switchOid);
    }

}

可我创建了一个普通类,并且@Autowired依赖注入实体类,在方法体里面调用时,却返回为空

@Component
public class SnmpSwitch{

    @Autowired
    private static SwitchOid switchOid;

    public static void one(){
        System.out.println(switchOid);
}

不知道问题所在

去掉 static 修饰符

static变量需要使用方法注入。

配置类加@Configuration试试,或者在注入的service里边用@EnableConfigurationProperties(SwitchOid.class)

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632