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

在Spring Boot应用程序中添加条件外部PropertySource

在Spring Boot应用程序中添加条件外部PropertySource

长风秋雁 2021-04-05 13:14:59
我当前正在使用EnvironmentPostProcessor添加我的外部PropertySource,代码如下所示:public class ExternalPropertySourceEnvironmentPostProcessor implements EnvironmentPostProcessor{    private static final String EXTERNAL_PROPERTY_SOURCE_NAME = "ExternalPropertySource";    @Override    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application)    {        if (environment.acceptsProfiles(Profiles.EXTERNAL_PROPERTY_SOURCE_ENABLED_PROFILE)) {            environment.getPropertySources()                       .addLast(new ExternalPropertySource(EXTERNAL_PROPERTY_SOURCE_NAME, new ExternalSource()));        }    }}spring.factories也用于注册此EnvironmentPostProcessor。如果在vm环境变量中设置了配置文件,则此代码实际上有效,但是如果将其添加到src / main / resources / application.yml中,则该配置文件似乎尚未注入环境中,并且不会由配置文件返回。 environment.getActiveProfiles()。我尝试使用优先级最低的接口Ordered,但这无济于事。为了在我要实现的目标周围添加一些上下文,该类在一个小的库中,该库添加了外部属性源(如数据库)。然后,我们可以在其他一些Spring Boot应用程序中使用它。像Spring Cloud Config一样。我想要一种干净的方法来启用或禁用此属性源,具体取决于代码运行的环境。我不介意使用其他任何东西,然后再使用概要文件,甚至不使用其他方式注入属性源,我只想要一些不依赖于几个因素才能工作的干净东西。现在,我代码中的主要问题是我正在使用Spring Boot的属性源来使自己的属性源可配置。更新:我使用Spring Cloud应用程序进行了调试,并且将引导上下文与常规的Spring Boot上下文混淆了。请在下面查看我的答案。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 200 浏览

添加回答

举报

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