若项目只有一个yml文件则用@Value就行,但若项目分为多个环境,比如local、test、prod则需要其他的方式

在总环境application.yml里通过@profile.active@获取对应的环境

@profile.active@对应pom文件里的配置
<profiles>
<!-- 本地环境 -->
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profile.active>local</profile.active>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<profile.active>prod</profile.active>
</properties>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
</properties>
</profile>
</profiles>
使用YamlPropertiesFactoryBean来读取自定义配置的yml文件
YamlPropertiesFactoryBean yamlProFb = new YamlPropertiesFactoryBean();
yamlProFb.setResources(new ClassPathResource("application-"+active+".yml"));
Properties properties = yamlProFb.getObject();
System.out.println(properties.get("server.port"));

704

被折叠的 条评论
为什么被折叠?



