Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在spring引导中读取属性文件_Java_Spring_Spring Boot_Properties_Properties File - Fatal编程技术网

Java 如何在spring引导中读取属性文件

Java 如何在spring引导中读取属性文件,java,spring,spring-boot,properties,properties-file,Java,Spring,Spring Boot,Properties,Properties File,我能够从我的spring boot应用程序的属性文件中读取(fruits的值),成功地使用@value,如下所示 @Value("${fruits}") private String[] fruitarray; 从下面 文件:applicaton.properties 现在,我想知道,如何从属性文件的第2节动态访问键值。 我是说,。。。在上面的代码中,我们已经得到了水果数组,并使用@Value将其设置为“水果数组”。现在,我将如何在java/spring引导方式中使用水果数

我能够从我的spring boot应用程序的属性文件中读取(fruits的值),成功地使用@value,如下所示

@Value("${fruits}")
private String[] fruitarray;
从下面

文件:applicaton.properties 现在,我想知道,如何从属性文件的第2节动态访问键值。 我是说,。。。在上面的代码中,我们已经得到了水果数组,并使用@Value将其设置为“水果数组”。现在,我将如何在java/spring引导方式中使用水果数组[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
/**从属性文件返回数组。数组必须定义为“key.0=value0”、“key.1=value1”*/ 公共列表getSystemStringProperties(字符串键){

//结果列表
列表结果=新建LinkedList();
//定义循环条件部件中赋值的变量
字符串值;
//条件部分中定义的下一个值加载
for(int i=0;(value=YOUR_PROPERTY_OBJECT.getProperty(key++““+i))!=null;i++){
结果:增加(价值);
}
//返回
返回结果;

}

只需使用:@Value(${apple.native}”)您就可以使用映射:看看这里,尝试这种方法:使用dellimiter',spring boot默认提供注入的application.properties,因此无需执行所有操作。
key.0=value0
key.1=value1
// 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;