Как программно получить доступ к названию приложения Spring Boot?

Я определил имя приложения, используя файл bootstrap.yml, в моем загрузочном приложении.

spring:
  application:
    name: abc

Как я могу получить это имя приложения во время выполнения/программно?

Ответ 1

Вы должны иметь возможность использовать аннотацию @Value для доступа к любому свойству, установленному в файле свойств /YAML:

@Value("${spring.application.name}")
private String appName;

Ответ 2

@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}}}";