Spring @Value注入属性获取不到值

今天在Spring boot中使用@Value发现获取不到值,但在另一个类中@Value注解确认获取到,我的代码如下:

@Component
public class EsClientWithSG {
    private TransportClient transportClient=null;
    private volatile boolean isClose = false;
    @Value("${environment}")
    private String environment;

    public EsClientWithSG(){
        //这里得到的environment为null
        String path="/config"+environment+"config.xml";
    }

原来是我在默认的构造函数里去获取自动注入的environment属性,此时Spring还未将该属性注入,因此为null,可以改为如下

@Component
public class EsClientWithSG {
    private TransportClient transportClient=null;
    private volatile boolean isClose = false;
    @Value("${environment}")
    private String environment;
    //注意我们删除了构造函数
    @PostConstruct //加上该注解表明该方法会在bean初始化后调用
    private void init(){
       //这里便可以获取到environment
        String path="/config"+environment+"config.xml";
    }

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭