今天在写一个工具类,使用@Value注入配置文件的值,但是一直为空,后来查资料发现@Value对static的属性注入无效。
解决办法,其实也挺简单的,就写一个setter方法,在setter方法中注入。当然这个工具类首先得是一个Bean否则是不能被扫描到的,我在这个工具类上加一个组件注解@Component。详细代码如下:
@Component
public class PegsusUtil {private static String pegsusUserName;
private static String pegsusPwd;
private static String pegsusUserName;
/**
* 从application中获取pegsusUserName,使用这种方法是因为@Value写对static无效,注意需要
* @Component
* @param pegsusUserName
*/
@Value("${pegsusUserName}")
public void setPegsusUserName(String pegsusUserName) {
PegsusUtil.pegsusUserName = pegsusUserName;
}
@Value("${pegsusPwd}")
public void setPegsusPwd(String pegsusPwd) {
PegsusUtil.pegsusPwd = pegsusPwd;
}
/**
*
* @return
*/
public static String getKey(){
String pwdMd5 = DigestUtils.md5Hex(pegsusPwd);
String key = DigestUtils.md5Hex(pegsusUserName+pwdMd5);
return key;
}
这样就解决了@Value不能注入到static属性中的问题了,简单吧。
欢迎大家欢迎访问toheart网站:http://www.toheart.xin/