2013-12-16 57 views
1

我在我的一個項目中使用自動裝配。 @autowiring在控制器中工作正常,但我需要在其他一些類中使用相同的自動裝配對象,該對象用作石英的任務類。自動裝配不在那裏工作。自動裝配不在控制器外工作

我試過下面列出的這段代碼,但沒有成功。在所有嘗試中,獲得nullreadXmlDao

@Repository("updateTeam") 
public class TeamUpdate { 
    @Autowired 
    @Qualifier("readXmlDao") 
    ReadXmlDao readXmlDao; 

請提出解決方案,謝謝。

+0

你有兩個獨立的項目嗎?你如何包含spring context.xml? –

+0

TeamUpdate是否與您的控制器在同一個項目中?或者你的覆蓋了你的TeamUpdate類嗎? –

+0

石英實例化TeamUpdate類嗎?只有當spring實例化類時,Spring自動佈線纔會起作用。 – beny23

回答

1

Autowire在春季環境中工作(由Spring管理的類實例)。 Quartz創建自己的上下文(創建自己的實例)。 Spring不需要知道這些類以及爲什麼autowire不能處理它們。

這是比class註釋更多的彈簧/石英配置問題。

0

在您的spring-servlet文件中,確保您正在掃描正確的軟件包。

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

很多時候,您可能會將控制器和存儲庫放在不同的包中。確保同時掃描。

1

春天將從來沒有離開@Autowired目標null。如果它正在處理這個bean並且找不到匹配,它將拋出異常。

既然你告訴我們這是null,唯一的可能性是,春天是而不是管理你的對象。您要麼手動創建TeamUpdate對象,要麼創建其他某個進程(而不是Spring)爲您創建它。

+0

謝謝你:),你節省了我的時間。 – Vivek

+0

@Vivek [Here's](http://stackoverflow.com/questions/19896870/why-is-my-spring-autowired-field-null)一個更全面的帖子。 –