事件:
由于在application-local.yml中定义了一个自定义的配置,需要在工具类中读取到这个值,但是在网上找了很多的文章,也都尝试了,最终无果,好在功夫不负有心人,在不断的试错过程中,终于获取到了,这个过程大概花了至少3个小时,差点崩溃。
我这里列一下写的比较好,但我依旧获取不到配置的文章
1、springboot读取application.yml自定义属性
2、在utils类中获取配置文件application.properties中的属性
3、SpringBoot项目中如何在静态工具类中调用到配置文件application.properties(yml)
其他的方法和这几个也是大同小异,我就不一一列出了,最后的结论就是没有一个能获取到的,最后在绝望中继续前进,尝试了这篇文章:
终于,可以在工具类中打印出配置的取值了,太开森了。
总结,Util工具类中即便加了@Component注解,依旧不解风情,获取不到,原因我还不知道,欢迎大神留言指教。
在工具类中的方法都是静态的,所以最终获取的方法里面也要写成静态方法。
由于配置只需要最开始启动的时候调用,所以我把这个配置值写成了全局变量,获取配置的方法调用放在static静态代码块中,这样就只需要获取一次。
谨以记录!
2020-7-30日更新此博客
前面的第一种方法中有添加@Value注解可以直接获取到的原因是直接启动整个项目,而不是只启动工具类,只启动工具类的话application-local.yml必然不在spring容器中,容器无法管理配置,注解就无法生效,所以启动整个springboot项目,加上注解才是生效的。所以前车之鉴,万望各位仙家引以为戒。要启动整个项目,工具类才能被sping容器管理,前提是工具类的上面加上@Component注解。
不过我最后找到的办法也算是一种学习了。