Как использовать аннотацию @value внутри метода для чтения свойства из файла свойств?
Могу ли я использовать аннотацию @value внутри метода для чтения свойства?
void method1(){
@Value("#{AppProperties['service.name']}") String name;
-------
-------
}
2 ответа
Решение
Приватный аксессор для переменной метода не подходит.
Если вы посмотрите на определение аннотации @Value, ее можно разместить только на уровне FIELD, PARAMETER или METHOD.
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Value {
Так что либо вы объявляете name как атрибут класса, либо как параметр метода...
Нет:) вы можете использовать аннотации для аннотирования классов, полей, методов и их аргументов. но не в методах, поскольку нет способа получить локальные переменные метода, используя отражение для обработки этих аннотаций. Используйте @Value в своем поле и считайте значение из вашего метода.