2016-04-25 25 views
2

我遇到了將組件自動裝入實用程序類的問題。實用程序類最初有靜態方法,但後來我只是將它們作爲實例方法。無法將組件自動裝入實用程序類

我與@Component並放入

封裝的工具類是在爲@ComponentScan指定的父目錄下的類中定義的工具類,其中 =「頂級目錄」,也包含所有其他自動裝配組件的軟件包。

要讓工具類運行,我必須將ExistingComponent傳遞給工具類的構造函數。

使用Spring 4.1.6。

這可能是一些基本的,但它不是點擊。我在這裏錯過了什麼?

謝謝。

更新1

正在調用該實用程序類的類如下所示:

class UsingClass { 
@Autowired 
MyUtilityClass myUtilityClass 
... 
    def method1() { 
    String variable1 = "some data" 
    myUtilityClass.utilityMethod(variable1) 
    ... 
    } 
} 

我原本內部實用方法爲靜態,並試圖使用實用工具類,而不自動裝配它。

+0

顯示您正在調用'MyUtilityClass'上的方法的類。 – chrylis

+0

同一包中的其他類怎麼樣?他們是否支持自動編譯 – Priyamal

+0

編輯調用類到問題中。 – chrylis

回答

1

您是否在您的beans XML配置文件中有這個地方?

<context:component-scan base-package="com.your.package" /> 

基包指明您的組件存儲。

這允許Spring掃描軟件包,以便它可以找到用@Component註釋的bean。

這更詳細地解釋here

+0

不使用XML。使用** @ ComponentScan **註釋,_value_屬性被設置爲'util'目錄之上和其他組件目錄之上的目錄。也就是說,如果_value _ =「com.my.top-level-dir」,則自動裝配的軟件包位於「com.my.top-level-dir.pkg1」,「com.my.top-level-dir」軟件包中。 pkg2「等等。實用程序類是在」com.my.top-level-dir.util「包中。 – Les

+0

我明白了。是的,我不確定你是否完全運行註釋。您至少有註釋驅動標籤正確運行註釋?我相信@Autowired至少需要這麼多。我今天將更多地考慮這一點,並將任何調查結果報告回來。感謝更新! –

相關問題