当前位置: 首页 > 知识库问答 >
问题:

从yaml文件读取值

陆琦
2023-03-14

我有以下问题。我根据一个给定的概要文件在yaml文件中读取的值创建一个数据源。

@Value("${my.db.serviceId}")
private String serviceId;

@Primary
@Bean(name = "prodDataSource")
@Profile("prod")
public DataSource prodDataSource() {
    return getDataSource(serviceId);
}

@Bean(name = "devDataSource")
@Profile("dev")
public DataSource devDataSource() {
    return getDataSource(serviceId);
}
---

spring:
   profile: dev
my:
  db:
    serviceId: 'my-dev-service'
---

spring:
  profile: prod
my:
 db:
   serviceId: 'my-prod-service'

---

我当前的问题是,当我用“dev”配置文件启动应用程序时,serviceId的值是'my-prod-service'。

我在这里做错了什么?

共有1个答案

徐经武
2023-03-14

@Primary annotation启用一个bean,当多个bean有资格自动关联一个单值依赖项时,该bean将获得首选项

因此带有@primary注释的bean将获得更多的首选项

 类似资料:
  • 可以接受一个目录列表,这些目录为Spring boot应用程序托管yaml文件。 但是列出的目录必须有名为application的文件。yml,否则它们不会被拾取。 如果我的应用程序允许用户使用任何名称放置yaml文件,那么我不能使用此选项。 然后,我手动将文件名添加到属性中,如下所示 spring.config.locationfile1.ymlfile2.yml 每次添加新文件时,我都必须修改

  • 这是我的项目结构 我在应用程序中有这个 在我的endpoint中,我有以下内容 在任何函数中,我都可以访问类似于的内容,它工作正常,但对于文件类型,它甚至没有编译,我收到以下错误: 创建名为'配置终结点'的bean时出错:注入自动生成的依赖项失败;嵌套异常是java.lang.IllegalArgumentExc0019:无法解决占位符'document.templates.filetypes'中

  • 我在Mule中定义了以下YAML属性文件。 YAML属性文件 我知道要获得名称,我应该使用“#[p('table.customers.name')]。 我想知道的是,有没有任何方法可以通过传递.name来获取密钥,比如table。键或表。$。我的意思是,如果我通过customerID,我应该得到关键的“客户”。类似地,如果我传递orderDateMin,orderDate Max,它应该返回“or

  • demo.yaml definitions.yaml文件数据 我想读取 yaml 文件及其折射数据。 输出结果={content':{application/json':{'schema':{'title':'YamlTitle','type':'object','properties':{'name':{'type':'string','minLength':10,'example':'GANE

  • 问题内容: 我正在使用AJAX从文本文件中读取。我如何只读取第一行? 问题答案: 此代码应帮助您从远程文本文件中读取:

  • 我正在做一个项目,我需要从文件中读取文本,然后将特定部分存储为变量。 假设我有文本文件示例。txt 我想将第一行指定为: 等等 到目前为止,我有这个。 这段代码将打印文件的内容,这是朝着正确方向迈出的一步,但是如何读取每行内容呢? 因为我真的不想养成在内存中存储整个文件的习惯。 我知道你可以用 和类似的方法,但我只是想了解提取值的方法。