问题记录
在完成项目的过程中,遇到了这样一个问题:读取application.yml信息时,报空指针异常。
application.yml配置如下:
#Cacheable 注解默认生存时间(秒)
cacheable:
redis:
ttl: 3600
在自定义的 PropertiesUtil类中,进行了对resources下 application.yml配置文件的加载
@Slf4j
public class PropertiesUtil {
private static Properties props;
static {
// String fileName = "application.properties";
String fileName = "application.yml";
props = new Properties();
try {
props.load(new InputStreamReader(PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName),"UTF-8"));
} catch (IOException e) {
log.error("配置文件读取异常",e);
}
}
public static String getProperty(String key){
String value = props.getProperty(key.trim());
if(StringUtils.isBlank(value)){
return null;
}
return value.trim();
}
public static String getProperty(String key,String defaultValue){
String value = props.getProperty(key.trim());
if(StringUtils.isBlank(value)){
value = defaultValue;
}
return value.trim();
}
}
但是当我在使用 PropertiesUtil.getProperty("cacheable.redis.ttl") 时,报错空指针异常,这让我有点摸不着头脑,就进行debug。
发现,在对 cacheable.redis.ttl 读取中key为 ttl
因为key值不为 cacheable.redis.ttl ,所以肯定会报空指针异常。
因此我们在yml文件中读取配置信息时,需设置为
cacheable.redis.ttl: 3600
读取的时候才为:
或者对调用方法的key值进行修改:
PropertiesUtil.getProperty("ttl")
原文转载:http://www.shaoqun.com/a/588614.html
杨颜:https://www.ikjzd.com/w/1820
c88是什么:https://www.ikjzd.com/w/1017.html
yml配置文件问题记录在完成项目的过程中,遇到了这样一个问题:读取application.yml信息时,报空指针异常。application.yml配置如下:#Cacheable注解默认生存时间(秒)cacheable:redis:ttl:3600在自定义的PropertiesUtil类中,进行了对resources下application.yml配置文件的加载@Slf4jpublicclassP
sonar:https://www.ikjzd.com/w/215
bsci 认证:https://www.ikjzd.com/w/2339
预售:https://www.ikjzd.com/w/889
川普又要加税?加税25%政策解读!:https://www.ikjzd.com/home/90830
吴佳琴:https://www.ikjzd.com/w/1770
Kilimall Brand Application 品牌申请及店铺升级操作指南:https://www.ikjzd.com/tl/106482
没有评论:
发表评论