我有一个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());
}
}
非常感谢任何帮助。
谢谢, 阿玛尔
答案 0 :(得分:1)
您的yaml文件应以三个短划线---
开头,并命名为“.yml”。
确保将其放在/src/main/resources/
中,您当前的位置会将其放在输出中的resources
目录下,这不是您想要的。
答案 1 :(得分:1)
我解决了我的问题, 我的构建脚本中有一个自定义bootrun,它将spring.profiles.active系统属性覆盖到某个值。 我在这里和那里做了一些调整,现在它的工作正常。 谢谢大家的时间!!!!