调用spring的@Value("${})取不到yml配置文件中的值,
明明value上已经显示出Yml中的值,但是debug的时候,channelNo还是为null.记录一下:
请添加图片描述
排查半天,原来是我这个类是我新new出来的,不在spring的管理范围内,所以拿不到:

请添加图片描述
正确的做法:
请添加图片描述
通过@Autowired 方式,将这个类引入即可。(已解决)

第二个无法通过@value拿到值的坑:

我封装了一个util文件,方法都是static的。也无法拿到yml中的值:
请添加图片描述
解决办法:
请添加图片描述
通过set方法给注入进来,即可:

    static String channelNo;
    @Value("${terminal.wechat.channelNo}")
    public void setChannelNo(String channelNo) {
        this.channelNo = channelNo;
    }

但是类上别忘了加@Component,让spring管理起来

2种方法都能取到了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐