首页后端开发其他后端知识springBoot项目中@Value取值相关问题怎样处理

springBoot项目中@Value取值相关问题怎样处理

时间2024-03-24 11:20:03发布访客分类其他后端知识浏览1210
导读:今天这篇给大家分享的知识是“springBoot项目中@Value取值相关问题怎样处理”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,因此分享发大家做个参考,下文的讲解详细,步骤过程清晰,希望这篇“springBoot项目中@Val...
今天这篇给大家分享的知识是“springBoot项目中@Value取值相关问题怎样处理”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,因此分享发大家做个参考,下文的讲解详细,步骤过程清晰,希望这篇“springBoot项目中@Value取值相关问题怎样处理”文章能帮助大家解决问题。


使用@Value取值出现的问题

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

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

file.uploadFolder=E://upload/

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

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

@Value("${
file.uploadFolder}
    ")
  private String uploadFolder;
    

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

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

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

private static String uploadFolder;

public static String getUploadFolder() {
    
    return uploadFolder;

  }

  @Value("${
file.uploadFolder}
")
  public void setUploadFolder(String uploadFolder) {
    
    Base64Utils.uploadFolder = uploadFolder;

  }
    

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

让它由spring管理。

记springBoot使用@Value出现的乌龙

先看一下代码

server.port=8007
#mysql配置
url=jdbc:mysql://localhost:3306/lzy_zyg?useUnicode=true&
characterEncoding=UTF-8
username=root
password=root

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

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

@Configuration
public class JfinalDb
{

  @Value("${
url}
    ")
  private String dbUrl;

  @Value("${
username}
    ")
  private String dbUName;

  @Value("${
password}
    ")
  private String dbPwd;

...
}
    

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

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

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



以上就是关于“springBoot项目中@Value取值相关问题怎样处理”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: springBoot项目中@Value取值相关问题怎样处理
本文地址: https://pptw.com/jishu/652025.html
可以将数字转为大写字母吗,php里要怎么做 PHP实现RabbitMQ消息列队的方法是怎样

游客 回复需填写必要信息