如何在春季启动中从属性文件读取

时间:2018-08-03 11:52:06

标签: java spring spring-boot properties properties-file

我能够从Spring Boot应用程序的属性文件中读取(“水果”的值),并成功使用了@Value,如下所示。

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

从下面

file: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”的值?

谢谢

3 个答案:

答案 0 :(得分:0)

就这么简单:

>     require([
>     'Magento_Ui/js/modal/confirm' ], function(confirmation) { // Variable that represents the `confirm` widget   //add your event here
> to fire it 
>           confirmation({
>               title: 'Test Conformation Wedget',
>               content: 'Are You Sure',
>               actions: {
>                   confirm: function(){},
>                   cancel: function(){},
>                   always: function(){}
>               }
>           });    // event close here
> 
> });

答案 1 :(得分:0)

您可以尝试将所有属性作为Bean获得,并在遍历水果列表的同时动态访问您的属性:

@Autowired
private Environment env;
...
env.getProperty(fruits[i] + ".native");
...

来源:http://www.baeldung.com/properties-with-spring#usage

答案 2 :(得分:0)

您也可以通过以下方式定义属性文件

key.0=value0
key.1=value1

/ **从属性文件返回数组。数组必须定义为“ key.0 = value0”,“ key.1 = value1”,... * / 公共列表getSystemStringProperties(String key){

// 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;

}