Spring Boot使用Value注解給靜態(tài)變量賦值的方法
昨天在使用@Value注解給靜態(tài)變量賦值的時(shí)候,發(fā)現(xiàn)靜態(tài)變量的值始終是null。后來(lái)搜索一下得知其中原因,Spring Boot 不允許/不支持把值注入到靜態(tài)變量中。但是我們可以變通一下解決這個(gè)問(wèn)題。因?yàn)镾pring Boot 支持set方法注入,我們可以利用非靜態(tài)set方法注入靜態(tài)變量。廢話(huà)不多說(shuō),貼上我昨天寫(xiě)的代碼:
@Component
public class CoverImageUtil {
private static String endpoint;
private static String bucketName;
@Value("${oss.endpoint}")
private void setEndpoint(String name){
endpoint = name;
}
@Value("${oss.bucketName}")
private void setBucketName(String name){
bucketName = name;
}
public static String getImage(String path){
if (StringUtils.isEmpty(path)){
return null;
}
// XXX的圖片地址 https://oss.XXX.com/uploads/8F/70/8F70879210F08AAA6F4A04A3D42F3704.jpg
if (path.contains("oss.XXX.com")){
return path;
}
String[] str = path.split(",");
// mt的圖片地址
// key = customer/coverImg/1002,FAFA5EFEAF3CBE3B23B2748D13E629A1,418530,image/jpeg
// url = https://m-t-tesing.oss-cn-hangzhou.aliyuncs.com/customer/coverImg/1002
StringBuilder url = new StringBuilder("https://");
url.append(bucketName)
.append(".")
.append(endpoint)
.append("/")
.append(str[0]);
return url.toString();
}
}
注意
- 代碼中需要@Component注解
- set方法要是非靜態(tài)的
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JPA添加Pageable實(shí)現(xiàn)翻頁(yè)時(shí)報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決JPA添加Pageable實(shí)現(xiàn)翻頁(yè)時(shí)報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
基于Java編寫(xiě)簡(jiǎn)單的Excel工具類(lèi)
這篇文章主要為大家詳細(xì)介紹了如何基于Java編寫(xiě)簡(jiǎn)單的Excel工具類(lèi),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下2024-02-02
Java深入淺出講解String類(lèi)常見(jiàn)方法
在C語(yǔ)言中,如果要表示字符串而且對(duì)字符串進(jìn)行操作的話(huà),依靠的是數(shù)組和指針,而Java中提供了String類(lèi)用來(lái)專(zhuān)門(mén)表示字符串,String類(lèi)中常見(jiàn)的方法,以及一些細(xì)節(jié)是本篇重點(diǎn)2022-04-04
Java實(shí)現(xiàn)無(wú)損Word轉(zhuǎn)PDF的示例代碼
本文將利用Java中的兩個(gè)jar包:pdfbox和aspose-words實(shí)現(xiàn)無(wú)損Word轉(zhuǎn)PDF功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下2022-06-06
Java接口的作用_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java接口的作用,涉及到接口的規(guī)范相關(guān)知識(shí),需要的的朋友參考下2017-04-04
Java數(shù)組模擬優(yōu)先級(jí)隊(duì)列數(shù)據(jù)結(jié)構(gòu)的實(shí)例
這篇文章主要介紹了Java數(shù)組模擬優(yōu)先級(jí)隊(duì)列數(shù)據(jù)結(jié)構(gòu)的實(shí)例,優(yōu)先級(jí)隊(duì)列中的元素會(huì)被設(shè)置優(yōu)先權(quán),本文的例子借助了Java中的TreeSet和TreeMap,需要的朋友可以參考下2016-04-04

