一般我們我想注入一個static的變數,如下:
@Autowired
private static String str;
不過,這樣最終結果為null。
1、使用配置檔案的方式注入
private static String from; public static String getFrom() { return from; } public static void setFrom(String from) { TestStatic.from = from; } <bean class="TestStatic"> <property name="from" value="abc"/> </bean>
2、使用註解的方式,不過註解寫在非static的方法上
private static String to; public static String getTo() { return to; } @Value("${mail.to}") public void setTo(String to) { TestStatic.to = to; }
備註:目前Spring的註解不支援靜態的變數和方法,至於原因:有人說是因為Spring是基於物件層面的依賴注入的,而且使用靜態的變數或類什麼的話,擴大了其生命週期,給Testing帶來困難,故Spring不推薦這樣做。至於還有沒有其他的什麼原因,抱歉,沒有搜到,咯咯,若你有什麼好的理由,可以私聊哦,謝謝!