事件:

由于在application-local.yml中定义了一个自定义的配置,需要在工具类中读取到这个值,但是在网上找了很多的文章,也都尝试了,最终无果,好在功夫不负有心人,在不断的试错过程中,终于获取到了,这个过程大概花了至少3个小时,差点崩溃。

我这里列一下写的比较好,但我依旧获取不到配置的文章
1、springboot读取application.yml自定义属性

2、在utils类中获取配置文件application.properties中的属性

3、SpringBoot项目中如何在静态工具类中调用到配置文件application.properties(yml)

4、SpringBoot(三)工具类中读取配置文件

其他的方法和这几个也是大同小异,我就不一一列出了,最后的结论就是没有一个能获取到的,最后在绝望中继续前进,尝试了这篇文章:

SpringBoot工具类获取yml配置文件内容

终于,可以在工具类中打印出配置的取值了,太开森了。

总结,Util工具类中即便加了@Component注解,依旧不解风情,获取不到,原因我还不知道,欢迎大神留言指教。

在工具类中的方法都是静态的,所以最终获取的方法里面也要写成静态方法。

由于配置只需要最开始启动的时候调用,所以我把这个配置值写成了全局变量,获取配置的方法调用放在static静态代码块中,这样就只需要获取一次。

谨以记录!


2020-7-30日更新此博客

前面的第一种方法中有添加@Value注解可以直接获取到的原因是直接启动整个项目,而不是只启动工具类,只启动工具类的话application-local.yml必然不在spring容器中,容器无法管理配置,注解就无法生效,所以启动整个springboot项目,加上注解才是生效的。所以前车之鉴,万望各位仙家引以为戒。要启动整个项目,工具类才能被sping容器管理,前提是工具类的上面加上@Component注解。
不过我最后找到的办法也算是一种学习了。

Logo

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

更多推荐