在spring boot项目中,工具类中的静态变量,如果要通过@Value赋值,是无法直接赋值的,原因是因为Spring的注解不支持静态的变量和方法,运行后发现注入失败。
@value(“${redis.host}”)
private static String redisHost;
解决办法:
1.使用中间变量赋值,给参数注入,执行set方法(这里注意set方法中的static要去掉)
public static String zhifuUrl;
@Value("${zhifu.url}")
public void setZhifuUrl(String url) {
CrmUtil.zhifuUrl = url;
}
2.使用set方法赋值的,记得需要加上注解@PostConstruct
public static String zhifuUrl;
@Value("${zhifu.url}")
private String zhifuUrlTmp;
@PostConstruct
public void init() {
zhifuUrl = zhifuUrlTmp;
}
最后,工具类上还需要注入@Component,否则也会为null。