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;
}
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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