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

问题描述 投票:0回答:3

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

    void method1(){

     @Value("#{AppProperties['service.name']}") String name;
     -------
      -------
   } 
spring annotations spring-3
3个回答
8
投票

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

如果看@Value注解的定义,只能放在FIELD、PARAMETER或METHOD级别。

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

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


7
投票

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


0
投票

你可以尝试这样使用:

void method1(@Value("${user.name}") String username){
   // Use your value username
}
© www.soinside.com 2019 - 2024. All rights reserved.