springboot使用@value获取值获取不到的坑
一.问题描述在springboot项目中使用@Value获取值获取不到,打印到控制台的总是空代码如下:package com.ruoyi.rycc.core.cosUpload;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;/***
·
一.问题描述
在springboot项目中使用@Value获取值获取不到,打印到控制台的总是空
代码如下:
package com.ruoyi.rycc.core.cosUpload;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* 测试从配置文件中读取数据
*
* @author Antg
* @date 2021/9/7 18:13
*/
@Component
public class CosUpload2 {
@Value("${user.password.maxRetryCount}")
private String secretId;
private String name = "123";
{
//这里使用代码块进行打印,但是项目启动后总是打印的是空
System.out.println(name);
System.out.println(secretId);
}
public void test() {
System.out.println(secretId);
}
}
二.问题分析
首先检查的是配置文件的格式是否有问题,我使用的是yml文件,发现没有问题
然后百度了一下说是在使用的时候不可以使用new关键字进行创建,显然不是,我是使用注入的方式
然后想是不是@Value的注入时机的问题,有可能是在使用该类实例的时候才会进行注入,代码块是类加载的时候,所以不行
最终问题解决了,就是这个原因
三.问题解决
使用@Value进行注入值的时候,只有在使用实例的时候才会注入
更多推荐
已为社区贡献1条内容
所有评论(0)