如何在方法中使用@value注释从属性文件中读取属性?

TP_*_*AVA 7 spring annotations spring-3

我可以在方法中使用@value注释来读取属性吗?

    void method1(){

     @Value("#{AppProperties['service.name']}") String name;
     -------
      -------
   } 
Run Code Online (Sandbox Code Playgroud)

yod*_*mad 7

方法变量的私有访问器是不合适的。

如果您查看@Value批注的定义,则只能将其放在FIELD,PARAMETER或METHOD级别。

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Value {
Run Code Online (Sandbox Code Playgroud)

因此,您可以将name声明为类属性或方法参数。


Erh*_*mir 6

否:)您可以使用注释来注释类,字段,方法及其参数。但由于没有办法,因此无法在方法中使用反射来获取方法局部变量,以便处理这些注释。在您的字段中使用@Value,然后从您的方法中读取值。