2016-07-29 46 views
0

的我會噴射兩種DAO在同一個服務類,我做了如下:@Inject多個DAO

@Transactional 
public class TestData { 

    private final UserDao userDao; 
    private final ExerciseDao exerciseDao; 

    @Inject 
    public TestData(final UserDao userDao,final ExerciseDao exerciseDao) { 
     this.userDao = userDao; 
     this.exerciseDao = exerciseDao; 
    } 
} 

是正確的方式?

實際上,我試圖創建一個TestData類來初始化HSQL數據庫的一些記錄。

所以,我注入了兩個DAO,然後我用它們來創建用戶,它是Exercice。

,當我試圖打電話getExercices或getUsers REST服務trougth HTTP URL以500個狀態時出現的錯誤:

<h2>HTTP ERROR 500</h2> <p>Problem accessing Reason: <pre> Request failed.</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/> 
+0

副手,這看起來應該工作得很好。如果您收到錯誤消息,請包含該錯誤及其堆棧跟蹤,以便我們幫助您找到問題所在。 –

+0

@BalusC,你爲什麼刪除java標籤? – Andrew

+0

@AndrewTobilko:因爲這個問題不是關於Java SE的。這個問題不能用'main()'方法使用普通的Java應用程序類來證明,也不能在JLS的幫助下支持。這個問題只是關於Spring。 – BalusC

回答

1

你想聽聽是否有可能通過1個註釋注入2場?

是的,這是可能的。你已經做到了。

這是一個很好的做法嗎?

就我個人而言,我更喜歡場/注射器注射。在這種情況下,我不依賴構造函數並可以防止不必要的代碼。構造器注入讓你的代碼容器不可知。無論您是否使用CDI容器(例如Spring),都必須使用此特定構造函數初始化實例。

+0

因爲,它沒有與我一起工作,我得到了錯誤500錯誤。 你是如何做到這一點與現場注射? – Selma

+0

@Selma,詳細描述你的錯誤,顯示堆棧跟蹤 – Andrew

+0

你可以看看我的問題,我更新它。 – Selma