Springboot學習之 使用@Value()注解給類靜態屬性賦值


最近在做項目時,需要要工具類中對屬性進行賦值,里面有過期時間和秘鑰,因為這兩個都是相對固定不會變動的東西,所以配在配置文件 或者數據庫配置表最好,這邊使用的是配置文件(application.yml),然后通過@Value()屬性注入到對應的屬性中。

   剛開始在做的時候,啟動項目后發現通過使用@Value注解對這兩個屬性進行賦值,結果兩個都注不進去。

這個讓我很苦惱,通過查找資料。找到了通過set的辦法進行注入,並成功。

解決辦法:

1.將這兩個私有屬性的set方法從私有變成公開(private -->>> public);

2.生成這兩個靜態屬性的set方法;

3.將原來在靜態屬性上的@Value() 注解改到設在 set方法上;

4.去除這兩個靜態屬性set方法的static關鍵字

類上面的@Compoent 注解一定要有。

最終結果如下:

@Component
public class JwtUtil {

/**
 * 過期時間,單位毫秒
 */
private static long EXPIRE_TIME ;

/**
 * token秘鑰
 */
private static String TOKEN_SECRET ;

@Value("${jwt.expire-time}")
public void setExpireTime(long expireTime) {
    EXPIRE_TIME = expireTime;
}

@Value("${jwt.secret}")
public void setTokenSecret(String tokenSecret) {
    TOKEN_SECRET = tokenSecret;
}

/***省去其他無關代碼***/

}
改完后,重新啟動項目,調用該工具類,可以得到對應的配置值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM