Как установить правильные данные для конфигурационного файла, полученного с облачного сервера конфигурации в Java Spring?

Я использую аннотацию ConfigurationProperties для сопоставления некоторых значений из application.yml с классом Java. Все работает нормально при использовании его с конфигурационным файлом localhost, но когда я выбираю конфигурации из облачной конфигурации, эти значения не могут быть найдены. Я предполагаю, что проблема может заключаться в том, что имя файла конфигурации может отличаться в зависимости от того, какая конфигурация выбрана, и Spring не знает, в каком файле их искать.

@Configuration
@ConfigurationProperties(prefix = "some.prefix")
  public class SomeMappedConfigClass {
    private String variable1;
    private String variable2;
}

и ямл с настройками

some.prefix:
  variable1: abc
  variable2: xyz

Я пытался сопоставить файл конфигурации с помощью аннотации PropertySource, но он ожидает имя файла конфигурации, которое в моем случае может отличаться.

@PropertySource("classpath:some-application.yml")

Есть ли способ передать в PropertySource текущую загруженную конфигурацию независимо от имени файла конфигурации? Журнал, который я получаю после успешной выборки конфигурации из облачной конфигурации, для приложения: профиль веб-сервера: LOCAL

Located property source: CompositePropertySource {name='configService', propertySources=[MapPropertySource {name='file:central-config/web-server-LOCAL.yml'}]}

1 ответ

Вы можете использовать внешнюю конфигурацию в classpath. Используйте следующее, чтобы пройти настройку

-Dspring.config.location=your/config/dir/

Или же

-Dspring.config.location=classpath:prop1.properties,classpath:prop2.properties

Используйте код ниже, чтобы получить значения свойств. Вы можете использовать любой из методов

@Configuration
public class AppConfig {

    @Value("${config.properties:<default values>}")
    String propvalue;

    @Autowired
    Environment env;


    public void method(){
     String datapath = env.getProperty("data.path")
    }

}
Другие вопросы по тегам