java SpringBoot 静态方法中获取@Value注入的值
我们正常@Value注入是可以使用的,前提不是静态方法中获取
我们在静态方法获取@Value注入是null
静态方法获取@Value值
使用set方法赋值
private static String accessKeyId;
private static String secret;
@Value("${video.accessKeyId}")
public void setAccessKeyId(String accessKeyId) {
VideoConfig.accessKeyId= accessKeyId;
}
@Value("${video.secret}")
public void setSecret(String secret) {
VideoConfig.secret= secret;
}
@SneakyThrows
public static DefaultAcsClient initVodClient() {
String regionId = "cn-shanghai"; // 点播服务接入地域
// 正常获取@Value注入的值了
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, secret);
DefaultAcsClient client = new DefaultAcsClient(profile);
return client;
}
注意:一定要在类加@Component注解