spring boot特定配置文件yaml没有加载

时间:2016-05-02 09:28:32

标签: java spring spring-boot yaml

我有一个yaml文件如下: -

spring:
  profiles: test
msg: test
---
spring:
  profiles : dev
msg: hello
---
spring:
  profiles : prod
msg: production

位于/src/main/java/resources application.yaml

我的代码读取此文件中的值如下

@Configuration
@EnableConfigurationProperties
public class TestConfig {

    private String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

我创建了这个类的bean,如下所示: -

@Bean
public TestConfig testConfig() {
    return new TestConfig();
}

但是,尝试查看配置文件特定信息不适用于以下代码: -

public class Main implements CommandLineRunner{

    @Autowired
    private TestConfig testConfig;

    public static void main(String[] args) {

        SpringApplication.run(Main.class, args);

    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("it works!!!");
        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   " + testConfig.getMsg());
    }
}

非常感谢任何帮助。

谢谢, 阿玛尔

2 个答案:

答案 0 :(得分:1)

您的yaml文件应以三个短划线---开头,并命名为“.yml”。 确保将其放在/src/main/resources/中,您当前的位置会将其放在输出中的resources目录下,这不是您想要的。

答案 1 :(得分:1)

我解决了我的问题, 我的构建脚本中有一个自定义bootrun,它将spring.profiles.active系统属性覆盖到某个值。 我在这里和那里做了一些调整,现在它的工作正常。 谢谢大家的时间!!!!