【发布时间】:2016-05-02 09:28:31
【问题描述】:
我有一个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());
}
}
非常感谢这里的任何帮助。
谢谢, 阿马尔
【问题讨论】:
-
如果您使用的是 Maven\Gradle,它应该在
src\main\resources\config文件夹中,文件扩展名也应该是.yml -
我添加了你提到的文件,更改了扩展名,使用 ./gradlew -Dspring.profiles.active=dev clean bootrun 运行它。但它打印 null
标签: java spring spring-boot yaml