使用Spring Boot开发微信企业号时,在配置微信的一些固定参数的时候,
使用@Value注解取值失败,返回值为null。
原取值方式如下所示:
//微信appid
@Value("${wechat.sCorpID}")
public static String sCorpID;
//微信secret
@Value("${wechat.appSecert}")
public static String wechatSecret;
产生原因:在SpringBoot中使用@Value只能给普通变量赋值,不能给静态变量赋值
解决方法:给静态变量增加一个非静态的set方法,注意需要把@Value注解写到对应的set方法上,而不是定义的静态变量上,如下所示:
//微信appid
public static String sCorpID;
@Value("${wechat.sCorpID}")
public void setSCorpID(String sCorpID) {
WechatConfig.sCorpID = sCorpID;
}
//微信secret
public static String wechatSecret;
@Value("${wechat.appSecert}")
public void setWechatSecret(String wechatSecret) {
WechatConfig.wechatSecret = wechatSecret;
}