Spring Boot получает значение Spring.profiles.active в статическом блокеJAVA

Программисты JAVA общаются здесь
Anonymous
Spring Boot получает значение Spring.profiles.active в статическом блоке

Сообщение Anonymous »

Можно ли получить значение активного профиля Spring в статическом блоке некоторого класса?
Я попробовал @value("$(spring.profiles.active)") и @Autowired Environment env;, чтобы получить значение, но оба оказались нулевыми внутри статического блока.
Я понимаю, что статический блок выполняется до инициализации Spring во время загрузки компонента, поэтому есть ли обходной путь для получения значения активного профиля или любое значение из application.yml внутри статического блока?
Пример кода:
@Value("$(spring.profiles.active)")
private String env;

static {
URL url = null;
WebServiceException e = null;
try {
ClassPathResource wsdlLoc = new ClassPathResource("/wsdl/Transaction_"+env+".wsdl");
url = new URL(wsdlLoc.getURL().toString());
} catch (IOException ex) {
e = new WebServiceException(ex);
}
TRANSACTIONPROCESSOR_WSDL_LOCATION = url;
TRANSACTIONPROCESSOR_EXCEPTION = e;
}

Вернуться в «JAVA»