@Value注入属性
工作中一些公共属性, 一般通过@Value注入的对象的属性中, 使用方式如下
1 2 3 4 5 6 7 8 9 10
| @Configuration public class WeChatConfig {
@Value("${wx.appId}") public String WX_APP_ID; }
|
通过@Value注解, 将配置文件中的值注入到对象属性中, 在使用时只需要注入WeChatConfig对象然后调用即可, 而实际工作中, 往往用静态属性, 方便使用, 于是可以写成如下方式
1 2 3 4 5 6 7 8 9 10
| @Configuration public class WeChatConfig {
@Value("${wx.appId}") public static String WX_APP_ID; }
|
使用此方式不会报错, 但是却取不到属性值, 并且不会报错. 变通方式可以如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| @Configuration public class WeChatConfig {
@Value("${wx.appId}") public static String WX_APP_ID;
@Value("${wx.app.id}") private void setWxAppId(String wxAppId) { WX_APP_ID = wxAppId; } }
|
注意: 此处的 set方法不可以设置为静态, 否则同样不能注入属性