如何在 spring 引导中读取 属性 文件
how to read from property file in spring boot
我能够从我的 spring 启动应用程序中的 属性 文件中读取('fruits' 的值),成功地使用 @Value 如下。
@Value("${fruits}")
private String[] fruitarray;
来自下面
文件:applicaton.properties
#section_1
fruits=apple,mango,banana
#section_2
apple.native=aaaa
apple.cost=100
apple.name=xxyyzz
现在,我想知道如何从属性文件的 section_2 动态访问键值。
我的意思是,...在我们上面的代码中,我们已经得到了水果数组,并使用@Value 将其设置为 'fruitarray'。现在,我将如何通过以 java/spring-boot 方式使用 fruitarray[0] 变量来访问 'apple.native' 的值?
谢谢
就这么简单:
@Value("${apple.native}")
private String Native;
@Value("${apple.cost}")
private Double cost;
@Value("${apple.name}")
private String name;
您可以尝试将所有属性作为 Bean 获取,并在遍历水果列表时动态访问您的属性:
@Autowired
private Environment env;
...
env.getProperty(fruits[i] + ".native");
...
您也可以通过以下方式定义属性文件
key.0=value0
key.1=value1
/** Return 属性文件中的数组。数组必须定义为 "key.0=value0", "key.1=value1", ... */
public 列出 getSystemStringProperties(字符串键){
// result list
List<String> result = new LinkedList<>();
// defining variable for assignment in loop condition part
String value;
// next value loading defined in condition part
for(int i = 0; (value = YOUR_PROPERTY_OBJECT.getProperty(key + "." + i)) != null; i++) {
result.add(value);
}
// return
return result;
}
我能够从我的 spring 启动应用程序中的 属性 文件中读取('fruits' 的值),成功地使用 @Value 如下。
@Value("${fruits}")
private String[] fruitarray;
来自下面
文件:applicaton.properties
#section_1
fruits=apple,mango,banana
#section_2
apple.native=aaaa
apple.cost=100
apple.name=xxyyzz
现在,我想知道如何从属性文件的 section_2 动态访问键值。 我的意思是,...在我们上面的代码中,我们已经得到了水果数组,并使用@Value 将其设置为 'fruitarray'。现在,我将如何通过以 java/spring-boot 方式使用 fruitarray[0] 变量来访问 'apple.native' 的值?
谢谢
就这么简单:
@Value("${apple.native}")
private String Native;
@Value("${apple.cost}")
private Double cost;
@Value("${apple.name}")
private String name;
您可以尝试将所有属性作为 Bean 获取,并在遍历水果列表时动态访问您的属性:
@Autowired
private Environment env;
...
env.getProperty(fruits[i] + ".native");
...
您也可以通过以下方式定义属性文件
key.0=value0
key.1=value1
/** Return 属性文件中的数组。数组必须定义为 "key.0=value0", "key.1=value1", ... */ public 列出 getSystemStringProperties(字符串键){
// result list
List<String> result = new LinkedList<>();
// defining variable for assignment in loop condition part
String value;
// next value loading defined in condition part
for(int i = 0; (value = YOUR_PROPERTY_OBJECT.getProperty(key + "." + i)) != null; i++) {
result.add(value);
}
// return
return result;
}