七叶笔记 » java编程 » springBoot项目中使用@Value取值出现的问题及解决

springBoot项目中使用@Value取值出现的问题及解决

使用@Value取值出现的问题

在springBoot项目中我们一般会把一些路径或者资源写在配置文件中,方便管理。

但是取得时候有可能会出现一些问题。

file.uploadFolder=E://upload/

1.一般情况下定义一个字段

在上面使用@Value("${名称}") 就可以得到值

2.但是通常我们会把它用在工具类当中

但是字段又被static修饰成为静态变量,使用这种方法就取不到值,我们拿到的就为null。

因此我们就要换一种取值方式,像下面这样就可以取到了。切记set方法不要带static!!!

3.工具类最好加上@Component或者其他注解

让它由spring管理。

记springBoot使用@Value出现的乌龙

先看一下代码

这是application.properties中填写的相关配置信息,其中mysql配置是作为外部配置信息来用的。

然后在需要的地方如下使用

使用的时候出现很诡异的问题,那就是命名设置的username和password是对的,通过本地连接也是对的,但是总是报连接认证失败的错误,并且用户名也不是root。

最后我将dbUName打印出来发现,完全不是root,而是我的主机名!

所以这里,切记不要在application.properties文件中自定义名称username,因为你取不到你想要的结果。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。

相关文章