San*_*Lee 7 java spring static annotations
不可能@Value在静态变量上使用.
@Value("${some.value}")
static private int someValue;
static public void useValue() {
System.out.println(someValue);
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,0打印出来.那么什么是这个的好选择呢?
Ral*_*lph 10
Spring在静态字段中注入注释(默认情况下).
所以你有两个选择:
@Value注释添加到setter.@Value太使用以下简单技巧即可实现所需的功能(比将值注入非静态设置器并编写一个静态字段更好-如接受的答案中所建议):
@Service
public class ConfigUtil {
public static ConfigUtil INSTANCE;
@Value("${some.value})
private String value;
@PostConstruct
public void init() {
INSTANCE = this;
}
public String getValue() {
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
使用方式如下:
ConfigUtil.INSTANCE.getValue();
| 归档时间: |
|
| 查看次数: |
16476 次 |
| 最近记录: |