SpringBoot使用@Value給靜態變數注入值
SpringBoot中使用@Value()只能給普通變數注入值,不能直接給靜態變數賦值
例如,application-dev.properties 配置檔案有如下配置:
給普通變數賦值時,直接在變數宣告之上新增@Value()註解即可,如下所示:
當要給靜態變數注入值的時候,若是在靜態變數宣告之上直接新增@Value()註解是無效的,例如:
雖然沒有編譯和執行上的報錯,經除錯可知這種註解方式mailUsername、mailPassword、mailHost的值都是null,也就是說直接給靜態變數讀取配置檔案是無效的,如下所示:
若要給靜態變數賦值,可以使用set()方法,其中需要在類上加入@Component註解,方法名(例如setMailUsername)和引數名(例如username)可以任意命名,如下所示:
除錯結果如下:
相關推薦
SpringBoot使用@Value給靜態變數注入值
SpringBoot中使用@Value()只能給普通變數注入值,不能直接給靜態變數賦值 例如,application-dev.properties 配置檔案有如下配置: 給普通變數賦值時,直接在變數宣告之上新增@Value()註解即可,如下所示: 當要給靜態變數
spring boot 給靜態變數注入值
問題: application.properties中配置下面兩個配置項 ccb.ip.address=10.25.177.31 ccb.ip.port=1600 下面問題程式碼中讀取不到applic
Spring Boot使用Value註解給靜態變數賦值的方法
昨天在使用@Value註解給靜態變數賦值的時候,發現靜態變數的值始終是null。後來搜尋一下得知其中原因,Spring Boot 不允許/不支援把值注入到靜態變數中。但是我們可以變通一下解決這個問題。因為Spring Boot 支援set方法注入,我們可以利用非靜態set方法注入靜態變數。程式碼
springboot 使用yml配置檔案給靜態變數賦值
宣告: 此處需求是修改封裝的clickhouseUtil資料查詢引擎連線工具類。由於此類中的方法都是靜態方法。連線地址等引數需要根據不同環境改變。例如開發下地址,測試下地址,生產地址等,所有通過配置檔案來獲取不同環境下的配置引數,但是使用的方法是靜態的,所有不能使用一般情況下的@value直接給
如何解決Autowired annotation is not supported on static fields問題給靜態變數賦值
問題由來: springboot專案中使用加解密功能,金鑰在application.properties檔案中配置,因此加解密服務類需要讀取該變數,為了提高效率,加解密服務類靜態初始化的時候就生成了SecretKeySpec(不是每次呼叫加密或者解密方法時再生成SecretKeySpec
如何解決@Autowired annotation is not supported on static fields問題給靜態變數賦值
問題由來: springboot專案中使用加解密功能,金鑰在application.properties檔案中配置,因此加解密服務類需要讀取該變數,為了提高效率,加解密服務類靜態初始化的時候就生成了Se
spring給靜態變數賦值
spring 不允許/不支援把值注入到靜態變數中, spring支援set方法注入,我們可以利用非靜態setter 方法注入靜態變數。如: import org.springframework.be
如何給靜態變數使用@Value的注入方式進行初始化
使用@value註解,給static型別的變數進行復制的時候如果單純這樣寫, @Value("${secret.url}") public static String MURL; 程式執行的以後就會發現這個MURL的值是空的,靜態變數沒有賦值成功 Spring是不鼓勵
SpringMvc通過@Value( ) 給靜態變量註入值
cluster 解決 獲得 必須 不能 str 靜態變量 static clu spring 不允許/不支持把值註入到靜態變量中,如: @Value("${ES.CLUSTER_NAME}")private static String CLUSTER_NAME; 在方法
解決@Value註解不能為靜態變數賦值
已經多次遇到這個問題,老是忘記了,記錄一下。 使用了spring的@Value註解,但是沒有賦值成功, @Value("${integraion.url}") private static String integraionUrl; 說明:integraion.url為springb
【SpringBoot系列】springboot靜態變數注入
【場景】 配置檔案中的配置項的讀取,例如:defaultTimes=3 【變數獲取】 1.一般變數獲取 @Value("${defaultTimes}") private String defaultTimes; 2.靜態變數獲取 @Component public cl
Spring給類中靜態變數賦值
spring-context.xml中程式碼 <bean class="com.apricotforest.doctor.pocket.solrsearch.util.SolrUtils" i
Java中讀取配置檔案中的內容,並將其賦值給靜態變數的方法
應用場景 專案開發中某個功能需要抽取成方法寫成一個工具類,提供給別人使用。寫過工具類的人都知道,工具類中的方法一般都是靜態方法,可以直接使用類名點方法名呼叫, 使用很方便,比如判斷某個物件是否為空的方式Objects.equals().由於我寫的這個工具類中需要讀取配置檔案中的內容,但是常規方法注入成員變數時
解決JQuery的ajax不能給全域性變數賦值的問題
今天在使用ajax給全域性變數賦值的時候發現無論用什麼方法都不行,下面先貼上問題程式碼: function isRetake(paperId) { var res = 1; // 傳送ajax請求 $.ajax({ async:false, url : bas
Laravel給request變數賦值,追加引數,修改引數
在使用Laravel的時候碰到一個問題,需要追加一個不存在的表單欄位。具體例子是: 我有個專門的表單頁面給使用者新增資源,方法都已經寫好了,這個表單頁面會傳使用者ID和授權碼過來; 然後改進後的需求
靜態變數注入bean的解決方法
解決方法是新建一個類,這個類實現ApplicationContextAware,並重寫setApplicationContext方法。具體請見下面原始碼: import org.springframework.beans.BeansException; import org
ajax非同步回撥函式中給外部變數賦值的問題
<!doctype html> <head> <meta charset="utf-8"> </head> <body> <script src="http://localhost/UIBMSPHPProj
Spring靜態變數注入
Spring 中靜態變數,不能按照普通變數一樣,進行注入和獲取,需要特殊進行配置。 下面舉一個採購網前臺的例子。 l 為靜態變數設定靜態方法。 Java 類定義 ApplicationProperties .java public class Appl
從static變數初始化到Spring/Spring boot的工具類靜態變數注入
寫這篇博文,要從java.lang.ExceptionInInitializerError這個報錯開始。簡單的看上去,這是一個類初始化異常報錯。但事實上並不是這樣,這是由於呼叫某個static變數屬
C#基礎 Convert ToDouble 鍵盤輸入給double變數賦值
慈心積善融學習,技術願為有情學。善心速造多好事,前人栽樹後乘涼。我今於此寫經驗,願見文者得啟發。 .NET Framework : 4.7.2 IDE : Visual Stud