在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。