靜態內部類解決靜態變數注入問題

2021-07-16 10:29:03 字數 1914 閱讀 2106

1.靜態變數不可直接注入,可通過setter的方式注入,且setter方法不能為static,實際上是在靜態變數被載入並預設初始化過後,初始化bean時被注入的

2.靜態內部類可在bean被初始化之後再載入,從而實現利用外部類靜態變數的目的

3.變數的注入,需要注意變數名的統一

public class ossclient 

// private static ossclient client = new ossclient(end_point,access_key_id, access_key_secret);//會出現null錯

/*** 獲取阿里雲oss客戶端物件

* */

public ossclient getossclient()

/*** 上傳檔案+引數為流

* @param bucketname

* @param filename

* @param filesuffix

* @param filecontent

* @param osspath

* @return

* @throws ioexception

*/public void uploadfile(string bucketname, string filename, string filesuffix,

inputstream filecontent, string osspath) throws ioexception catch(exception ex) finally

}/**

* @param bucketname

* @param detail

* @param osspath

* @return

*/public string downloadstring(string bucketname, string detail, string osspath) throws ioexception catch (ioexception e) finally

return detail;

}public void downloadimage(string bucketname, string imagesrcpath, string filename, string osspath)

throws ioexception

//filename為1122.png.20160628201838,去掉字尾20160628201838

filename = filename.substring(0, filename.lastindexof("."));

output = new fileoutputstream(imagesrcpath + filename);

output.write(bytes);

} catch (ioexception e) finally

}public string getbucketname()

@value("$")

public void setbucketname(string bucketname)

public string getaccesskeysecret()

@value("$")

public void setaccesskeysecret(string accesskeysecret)

public string getaccesskeyid()

@value("$")

public void setaccesskeyid(string accesskeyid)

public string getendpoint()

@value("$")

public void setendpoint(string endpoint)

}

Springboot靜態變數注入問題

在使用springboot框架時,可能遇到給自定義的工具類的靜態成員變數賦值,此時spring又不支援直接給靜態變數賦值,在網上查了許多,發現其思想為通過賦值給非靜態類的非靜態方法賦值,同時利用靜態方法成員變數的get或有參建構函式等進行呼叫賦值。換賦值 如 public class methodt...

內部類 靜態內部類

static可以修飾內部類,通常用來給外部類賦值 例如 建造者模式 靜態內部類不能使用外部類非靜態的屬性,必須用物件名呼叫 在外部類中 建立靜態內部類可以直接建立,不需要建立外部類 不能使用成員內部類的方式建立靜態內部類物件 內部類 物件名 new 內部類 外部類.內部類 物件名 new 外部類.內...

內部類 靜態內部類

package org.lgy.study.innerclass 靜態內部類屬於外部類本身,而不屬於外部類的物件。使用靜態內部類時無需建立外部類的物件。public class staticinnerclass public static void method2 public void metho...