Ответ 1
Вы должны иметь возможность использовать аннотацию @Value для доступа к любому свойству, установленному в файле свойств /YAML:
@Value("${spring.application.name}")
private String appName;
Я определил имя приложения, используя файл bootstrap.yml, в моем загрузочном приложении.
spring:
application:
name: abc
Как я могу получить это имя приложения во время выполнения/программно?
Вы должны иметь возможность использовать аннотацию @Value для доступа к любому свойству, установленному в файле свойств /YAML:
@Value("${spring.application.name}")
private String appName;
@Autowired
private ApplicationContext applicationContext;
...
this.applicationContext.getId();
Пожалуйста, найдите это:
# IDENTITY (ContextIdApplicationContextInitializer)
spring.application.name=
spring.application.index=
Справочное руководство по весне.
И следуйте за исходным кодом для этого класса ContextIdApplicationContextInitializer
:
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
applicationContext.setId(getApplicationId(applicationContext.getEnvironment()));
}
Если поведение по умолчанию:
/**
* Placeholder pattern to resolve for application name
*/
private static final String NAME_PATTERN = "${vcap.application.name:${spring.application.name:${spring.config.name:application}}}";