为了账号安全,请及时绑定邮箱和手机立即绑定

如何在启动时加载弹簧@PropertySource

如何在启动时加载弹簧@PropertySource

慕尼黑8549860 2022-05-25 09:55:51
我注意到在启动期间使用的某些属性只能在application.properties.例如:src/main/java/foo/bar/Foo.java@SpringBootApplicationpublic class Foo {    private static final Logger log = LoggerFactory.getLogger(Foo.class);    public static void main(String... args) {        ApplicationContext appContext = SpringApplication.run(Foo.class, args);        log.info(appContext.getEnvironment().getProperty("spring.profiles.active"));    }}src/main/resources/application.propertiesspring.profiles.active=dev控制台日志:09:23:48.827 : The following profiles are active: dev09:23:50.832 : dev该配置文件在启动时被识别为dev并在Environment. 这是预期的行为。但是,如果我将相同的属性从application.propertiesto移动foo.properties并加载为 a @PropertySource,则行为会发生变化。src/main/java/foo/bar/FooConfiguration.java@Configuration@PropertySource("classpath:foo.properties")public class FooConfiguration { }src/main/resources/foo.propertiesspring.profiles.active=prodsrc/main/resources/application.properties# empty控制台日志:09:35:18.141 : No active profile set, falling back to default profiles: default09:35:20.175 : prod该配置文件在启动期间不考虑,但在启动Environment后可用。问题:如何从加载属性@PropertySource并使它们在启动时在application.properties加载其余部分的同一点可用?
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

我认为您可以使用“--spring.config.location”属性来指定要使用的属性文件。



查看完整回答
反对 回复 2022-05-25
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信