Как использовать аннотацию @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 в своем поле и считайте значение из вашего метода.

Другие вопросы по тегам