1. 程式人生 > >Spring @Value注入屬性獲取不到值

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"; }

相關推薦

Spring @Value注入屬性獲取

今天在Spring boot中使用@Value發現獲取不到值,但在另一個類中@Value註解確認獲取到,我的程式碼如下: @Component public class EsClientWithSG { private TransportClien

Spring中利用配置檔案和@value注入屬性

1 簡單屬性值注入 package com.xy.test1; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service;

springvalue標籤獲取原樣輸出${}

前提已經確保spring的配置檔案以及讀取到properties檔案了我的配置是: <!-- 引入屬性檔案 --> <context:property-placeholder location="classpath:filer.properties" or

Spring Cloud配置中心獲取到最新配置資訊的問題

本篇源於Spring Cloud Config的一個問題,但這個問題並非所有人都會遇到。如果您遇到了,那必須得看看這篇,如果沒有遇到您也應該看看,防患於未然! 問題描述 之前有朋友提出Spring Cloud Config的配置中心在執行一段時間之後,發現修改了配置資訊,但是微服務應用並拿不到新的配

spring @Value 注入配置檔案內容

</pre>1,在spring配置檔案裡引入util的名稱空間<p></p><p></p><pre name="code" class="html"><beans xmlns="http://w

Insight spring @Value 注入處理

/** * Actually register the default editors for this registry instance. */ private void createDefaultEditors() { this.defaultEditors = new HashMap, P

JavaScript監聽、設定全部ajax訪問屬性獲取返回(狀態碼)

JavaScript監聽、設定全部ajax訪問屬性(requestHeader)獲取返回值(狀態碼) 設定全部ajax訪問屬性 監聽全部ajax返回值(狀態碼) 設定ajax屬性(req

spring註解注入屬性

1 注入普通型別屬性 (1)在要注入值的屬性上面使用註解 @Value,不需要set方法 @Value(value="lucymary")  privateStringbname; 2 注入物件型別屬性(重點) (0)首先把物件使用註解建立 第一個註解: @Autowir

Spring注入案例分析(設注入和構造注入)

日期: 2016-7-14 內容: 學習和記錄Spring的注入內容: 一、什麼是Spring的注入: spring的注入是指在啟動spring容器載入Bean配置的時候,完成對對變數的賦值行為。

Spring依賴注入屬性自動裝配

設定屬性值的三種基本方式: 在Bean定義檔案中使用<value>指定字串以及基本型別值。 使用<ref>直接指定參考至其他Bean例項。 使用<bean>標籤指定value屬性。 自動裝配方式 屬性值 說明 byName 容器將查詢與屬性名相

Controller層使用@value註解獲取到properties屬性

說到@Value註解,用過的應該都知道,這是Spring3的一個註解,通過@value註解的方式獲取properties檔案中的配置值,大大簡化了我們讀取配置檔案的程式碼。然而,最近在使用中發現在controller使用出現了獲取不到值的問題 經過排查發現父子容器的說法, 父子容器: Spring容器  --

Spring @Value("$XXX")注入失敗,錯誤資訊提示:Could not resolve placeholder佔位符能被解析

問題原因: Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'wx.app.config.appid' in string value "${wx.app.config

spring@value的幾種情況

spring@value取不到值的幾種情一,spring組件重寫構造方法,在構造方法中引用@value為null由於spring實例化順序為先執行構造方法,再註入成員變量,所以序為先執行構造方法,再註入成員變量,所以ing實例化順取值為null解決辦法為:再寫一個常量類,在常量類中引用@value,再在構造方

spring boot 配置檔案properties,yml語法學習及屬性獲取@ConfigurationProperties和@Value

1 概述 SpringBoot使用一個全域性的配置檔案,配置檔名是固定的;當我們建立一個專案時會在resource目錄下出現一個預設的配置檔案application.properties 我們可以在裡面進行一些引數的配置,當然還有另外一種方式yml檔案application.yml(

關於spring value註解取問題。

關於spring在service層  @value註解取不到值問題。 解決方法: 在applicationContext..xml 還有 applicationContext-mvc.xml 來年改革檔案,都加入 <context:property-placeholder lo

Spring 學習(四)——注入屬性細節

字面值 •字面值:可用字串表示的值,可以通過 <value> 元素標籤或 value 屬性進行注入。 •基本資料型別及其封裝類、String 等型別都可以採取字面值注入的方式 •若字面值中包含特殊字元,可以使用 <![CDATA[]]> 把字面值包裹起來。 &

進入頁面獲取到audio/video屬性問題

有時候我們不用html5自帶的視訊/音訊的控制元件,需要自定義, 這個時候可能就需要用到一些audio/video屬性值。我們有個業務場景需要進入頁面就獲取音訊的總時長, 但一直無法獲取到,只有和頁面產生互動才能獲取,折騰了一段時間,總算解決了。  當音訊/視訊處於載入過程中時,會

解決type=file中獲取value

做前端開發的童鞋肯定會遇到這樣的需求,獲取表單裡面全部input的值。 但是也不難發現這樣的bug,給type=“file”的input標籤賦值value,然後再通過js去獲取value的時候,發現根本拿不到想要的那個值,拿到的是空字串。 通過zepto或者

spring拾遺(一)——@Value注入static屬性

一、xml通過bean注入:沒有嘗試,理論上可行 二、給引數注入,執行set方法public static String zhifuUrl; @Value("${zhifu.url}") pu

spring註解注入properties屬性

1 首先在applicationContext.xml中加入:    <beans xmlns:util="http://www.springframework.org/schema/util"      xsi:schemaLocation="http://www.