Spring –静的変数に値を注入します
Springでは、次の例のように、静的変数に値を挿入できません。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class GlobalValue {
@Value("${mongodb.db}")
public static String DATABASE;
}
GlobalValue.DATABASEを印刷すると、nullが表示されます。
GlobalValue.DATABASE = null
溶液
修正するには、「非静的セッター」を作成して、静的変数に注入された値を割り当てます。 例えば :
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class GlobalValue {
public static String DATABASE;
@Value("${mongodb.db}")
public void setDatabase(String db) {
DATABASE = db;
}
}
出力
GlobalValue.DATABASE = "mongodb database name"