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

时间:2012-09-12 15:27:51

标签: spring annotations spring-3

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

    void method1(){

     @Value("#{AppProperties['service.name']}") String name;
     -------
      -------
   } 

2 个答案:

答案 0 :(得分:6)

no :)您可以使用注释来注释类,字段,方法及其参数。但不是在方法中,因为没有办法,使用反射来获取方法局部变量以处理这些注释。在您的字段中使用@Value,并从您的方法中读取值。

答案 1 :(得分:6)

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

如果查看@Value注释的定义,它只能放置FIELD,PARAMETER或METHOD级别。

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Value {

因此,要么将name声明为类属性,要么将其声明为方法参数...