一般我們我想注入一個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不推薦這樣做。至於還有沒有其他的什么原因,抱歉,沒有搜到,咯咯,若你有什么好的理由,可以私聊哦,謝謝!