读取配置文件和使用log.info()的小问题。

我在使用token的时候,将密钥和token的生效时间放在了配置文件中,但是当我使用@Value()去获取的时候,发现总是获取不到,而且我发现其他的配置项都是绿色的,只有我的token配置项是白色的,然后经过我的细心检查,发现属性和值之间少了一个空格,添加上这个空格之后,就变成绿色了,然后也能够正常使用@Value去获取值了。

还有一个点就是我们使用@Value()从配置文件中获取配置项时,默认都是String类型,如果我们接收的类型不是,则会自动帮我们进行类型的转换,如果配置中需要long类型的数据,我们不需要添加L结尾。

当我在使用test来测试接收数据时,无法自动进行类型的转化,于是我写了以下语句:

@Value("${token.refreshTime}")
private String refreshTimeString;
long refreshTime = Long.parseLong(refreshTimeString);

但是我收到的错误是:refreshTimeString为null,经过查阅,告诉我是long refreshTime = Long.parseLong(refreshTimeString)先于注入执行,所以refreshTimeString为null,所以如果我们想这么做,需要这样写:

@Value("${token.refreshTime}")
private String refreshTimeString;

@PostConstruct
public void init(){
    long refreshTime = Long.parseLong(refreshTimeString);
}

重点是这个注解:@PostConstruct,该注解标记的方法会在依赖注入完成后(即 bean 实例化并设置了所有注入属性之后),在调用该 bean 的任何方法之前被调用。这样我们就可以完成手动的类型转换了。

然后我在使用log.info()时系统总是提示我不存在这个东西,但是我的依赖也加上上了,后来发现是我的类没有加上@Slf4j,需要加上这个,才能在类中使用那个。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值