2013-03-16 95 views
2

在我的應用程序中,我使用了Spring3 MVC框架。我有一個DAO類TestDAO1.java,其中我需要一個在TestDAO2.java類中聲明的方法getArticleList()。如何在Spring 3中將DAO對象注入另一個DAO類

據我所知,我們可以將服務層對象注入控制器和DAO到服務層。 但我們可以注入DAO對象到DAO類嗎?

這裏我想注射TestDAO2類對象到TestDAO1.java類。所以我可以使用getArticleList()方法。我該怎麼做 ?

將DAO注入DAO是正確的方式還是標準?

回答

5

這裏我想將TestDAO2類對象注入TestDAO1.java類。所以我可以使用getArticleList()方法。我該怎麼做 ?

與將控制器注入控制器的方式相同 - 例如,使用@Autowired註釋:

public class TestDAO2 { 
    @Autowired private TestDAO1 dao1; 
    .... 

沒有區別注入對象是否是一個服務或其他DAO。

將DAO注入DAO是正確的方法還是標準?

一般:。這種情況表明可能是您的模型或DAO中的一些設計問題。或許你的TestDAO1做得太多了?嘗試將此功能轉移到使用兩個DAO的服務!

+0

+1不僅解決OP的問題,而且還深入思考一個層次(關於可能的設計問題)。 – user1766760 2013-03-16 05:46:56

+0

@mantrid:謝謝你的回覆。 DAO注入與Autowired註釋一起工作良好。我同意我的應用程序存在一些設計問題,這迫使我將DAO注入到DAO中。但爲了代碼可重用性的目的,我嘗試使用聲明爲其他DAO的功能。根據我的應用程序設計,對於「每個」實體,我正在創建一個新的DAO類,其CRUD方法。因此按照我的觀點,這是數據庫設計問題。我認爲,我應該創建更優化的DB設計方式,以免發生這種情況。 – 2013-03-16 07:34:14