温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

springBoot中使用@Value取值出现问题如何解决

发布时间:2022-07-08 13:45:56 来源:亿速云 阅读:453 作者:iii 栏目:开发技术

这篇文章主要介绍“springBoot中使用@Value取值出现问题如何解决”,在日常操作中,相信很多人在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取值出现问题如何解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI