2015-06-08 33 views
3

我有一個Spring類,在那裏我使用構造函數自動裝配服務,加上相同的構造函數我是初始化相同類的其他字段。春天的構造函數自動裝配和初始化其他字段

@Component 
class Converter { 
    private TestService testService; 
    private Interger otherFields; 
    @Autowired 
    public Converter(TestService testService) { 
    this.testService = testService; 
    this.otherFields = new Integer(10); 
    } 
} 

我的功能工作正常,但它是一個很好的做法?會@Autowired標註有otherFields intialization過程

+3

沒有,爲什麼呢?它只是表明'TestService'類型的依賴關係需要傳遞給構造函數,因爲它仍然只是對構造函數的調用。 –

+0

@ M.Deinum,謝謝我有同樣的想法,只是我需要確認 –

回答

1

應該不會產生任何影響。回到xml的日子裏,當你想將參數傳遞給構造函數時,你提到了構造函數arg的ref bean。這只是意味着你必須有一個構造函數將指定的bean類型作爲參數。只要你通過構造函數創建一個有效的對象(雖然這只是普通的Java編程,而與Spring無關),那麼在構造函數中添加什麼並不重要。

自動佈線只是一個簡單的方法來創建您的對象與必要的依賴關係,你的代碼仍然是你的代碼。

1

當春乃發生實例類將查找與@Autowired註釋的構造,收集對應於構造函數採用參數的豆,然後用這些bean作爲參數調用它號。

然後,它將掃描您的課程中的所有字段和方法,並將bean注入到使用@Autowired進行註釋的任何字段中。它不會觸及未註釋的方法或字段。

相關問題