spring.config.location
可以接受一个目录列表,这些目录为Spring boot应用程序托管yaml文件。
但是列出的目录必须有名为application的文件。yml,否则它们不会被拾取。
如果我的应用程序允许用户使用任何名称放置yaml文件,那么我不能使用此选项。
然后,我手动将文件名添加到属性中,如下所示
spring.config.locationfile1.ymlfile2.yml
每次添加新文件时,我都必须修改此属性。
我能够使用YamlPropertySourceLoader来读取所有文件,并将所有属性放入地图,但有没有另一种更优雅的方法可以让我将这些值直接绑定到注释中。
使用我当前使用的代码片段进行更新,但寻找任何其他更好的替代方案。
Resource[] resources = applicationContext.getResources("classpath*:*.properties");
Map<Object, Object> map = new HashMap<>();
Arrays.stream(resources).forEach(res -> {
try {
propertiesPropertySourceLoader.load("resources", res)
.forEach(prop -> map.putAll((Map<?, ?>) prop.getSource()));
} catch (IOException e) {
e.printStackTrace();
}
});
您可以使用PropertyPlaceHolderConfigure配置多个配置文件,例如:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>${YOUR_HOME}/global.properties</value>
<value>${YOUR_HOME}/second-level.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="fileEncoding" value="UTF8"/>
或者您可以使用@Property tySource
注释,例如:
@PropertySource(value = {"classpath:global.properties", "file://${YOUR_HOME}/second-level.properties"}, ignoreResourceNotFound = true)
如果您的应用程序中有多个yml/Properties文件,那么您可以在配置类上使用@Property tySource("classpath:file.properties")
,因此您将能够从该配置文件中读取值。
更多信息查看
我有以下问题。我根据一个给定的概要文件在yaml文件中读取的值创建一个数据源。 我当前的问题是,当我用“dev”配置文件启动应用程序时,serviceId的值是'my-prod-service'。 我在这里做错了什么?
我在Mule中定义了以下YAML属性文件。 YAML属性文件 我知道要获得名称,我应该使用“#[p('table.customers.name')]。 我想知道的是,有没有任何方法可以通过传递.name来获取密钥,比如table。键或表。$。我的意思是,如果我通过customerID,我应该得到关键的“客户”。类似地,如果我传递orderDateMin,orderDate Max,它应该返回“or
问题内容: 我想知道如何从单个文件夹中读取多个文件(无需指定文件名,只是它们是json文件)。 另外,有可能将它们转换为DataFrame吗? 能给我一个基本的例子吗? 问题答案: 一种选择是使用os.listdir列出目录中的所有文件,然后仅查找以’.json’结尾的文件: 现在,您可以使用pandas DataFrame.from_dict将json(此时为python字典)读入pandas数
demo.yaml definitions.yaml文件数据 我想读取 yaml 文件及其折射数据。 输出结果={content':{application/json':{'schema':{'title':'YamlTitle','type':'object','properties':{'name':{'type':'string','minLength':10,'example':'GANE
我正在使用python,我有一个文件(
我需要从多个目录中读取文件,并处理数据并将其存储到DB中。目前我正在使用块多资源阅读器,它适用于1个目录。但现在我必须从多个目录中读取文件。如何使用Spring批处理来做到这一点