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

来源:互联网 发布:大学送礼给老师知乎 编辑:程序博客网 时间:2024/05/21 19:31

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

@Componentpublic class EsClientWithSG {    private TransportClient transportClient=null;    private volatile boolean isClose = false;    @Value("${environment}")    public EsClientWithSG(){        //这里得到的environment为null        String path="/config"+environment+"config.xml";    }

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

@Componentpublic 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";    }
原创粉丝点击