问题描述:
通过读取配置文件的方式获取自定义配置文件参数。
将属性参数定义为 static
,idea 快捷键生成的 Get 和 Set 方法 获取到的值为null
。
配置文件内容:
csv:
# 名称
name: xxxx
# 文件路径
profile: F:/file
获取配置文件属性
定义好类属性之后,通过 idea
快捷键 (alt + insert)
生成的 Get 和 Set 方法如下:
@Component
@ConfigurationProperties(prefix = "csv")
public class CSVConfig {
/** 项目名称 */
private String name;
/** 上传路径 */
private static String profile;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static String getProfile() {
return profile;
}
public static void setProfile(String profile) {
CSVConfig.profile = profile;
}
}
在测试中通过 String profile = CSVConfig.getProfile();
的方式获取到的 profile
为 null
。
解决方法
将 idea
生成的 Set
方法的 static
删除
修改后带代码如下:
@Component
@ConfigurationProperties(prefix = "csv")
public class CSVConfig {
/** 项目名称 */
private String name;
/** 上传路径 */
private static String profile;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static String getProfile() {
return profile;
}
public void setProfile(String profile) {
CSVConfig.profile = profile;
}
}