Spring 注入static變量


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM