#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), который управляет значениями свойств и знает, как получить значение свойства для каждой константы перечисления.