Получить значение из файла свойств в классе перечисления

#java #spring #enums #properties

Вопрос:

команда! У меня есть вопрос о получении файла свойств в классе перечисления. Итак, прежде всего, у меня есть файл свойств со следующей константой: MY_CONSTANT=»xyz»

Также у меня есть класс перечисления:

 public enum Test {
ABC{..},
DEH{..};
.....
String constantTwo = <here_is_constant_from_properties_file>;
}
 

Как вы знаете, я не могу использовать среду @Autowired в классе перечисления, поэтому этот.environment.getProperty(«MY_CONSTANT») не работает для меня.

Также, когда я пытаюсь использовать @Value:

 public enum Test {
ABC{..},
DEH{..};
.....
@Value(${"MY_CONSTANT"})
String constantTwo;
}
 

Я получаю ошибку компиляции: constantTwo может быть не инициализирован.

Не могли бы вы, пожалуйста, дать несколько идей?

Комментарии:

1. Не используйте перечисления таким образом.

2. Значения перечисления не являются весенними бобами, поэтому @Autowired и @Value не работают. Возможное решение: Не пытайтесь сделать это в самом перечислении. Пусть перечисление содержит только константы и создайте отдельный класс (который может быть компонентом Spring), который управляет значениями свойств и знает, как получить значение свойства для каждой константы перечисления.