springBoot中使用@Value取值出现问题如何解决
使用@Value取值出现的问题在springBoot项目中我们一般会把一些路径或者资源写在配置文件中,方便管理。但是取得时候有可能会出现一些问题。file.uploadFolder=E://upload/1.一般情况下定义一个字段在上面使用@Value("${名称}")就可以得到值@Value("${file.uploadFolder}")privateStringuploadFolder;2.但是通常我们会把它用在工具类当中但是字段又被static修饰成为静态变量,使用这种方法就取不到值,我们拿到的就为
使用@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,因为你取不到你想要的结果。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















