3
每次行爲時都可以將持久化上下文注入到scala actor中?我有一個雙Java/Scala彈簧應用程序,我使用Spring註釋將我的Java服務和方法標記爲事務性。我想在我的Scala演員中使用類似的功能。也就是說,每次響應消息時,演員應該在單個事務中進行操作。有沒有人嘗試過類似的東西,或者有沒有這種東西的例子?scala參與者和持久化上下文
每次行爲時都可以將持久化上下文注入到scala actor中?我有一個雙Java/Scala彈簧應用程序,我使用Spring註釋將我的Java服務和方法標記爲事務性。我想在我的Scala演員中使用類似的功能。也就是說,每次響應消息時,演員應該在單個事務中進行操作。有沒有人嘗試過類似的東西,或者有沒有這種東西的例子?scala參與者和持久化上下文
爲什麼不通過注入演員本身的Dao
trait
封裝持久訪問。這樣,您就可以擁有一個持久的演員是從持久性機制本身去耦:
class DaoActor(val dao: Dao) extends Actor {
def act() = {
loop {
react {
case SaveTrade(trade) => dao.save(trade)
case ReadTrades(date) => dao.lookup(date) }
}
}
}
更重要的是,你可以Dao
在Java中進行編碼,因此您也可以添加註釋@Transactional
。
我認爲我將不得不使用某種形式的上述解決方案。我需要一個服務,我可以將它作爲標記爲「@ Transactional」的Spring上下文的一部分實例化,以便Spring正確代理對象。然後,我的演員將注入參考服務,並將調用服務來執行實際工作。這個解決方案很好,可以工作,但我希望有一個更加以Scala爲中心的解決方案。 – AnthonyF 2009-10-12 12:14:18
任何一次upvote的機會呢? ':-)' – 2009-10-12 13:58:35
嗯,它不會讓我。 – AnthonyF 2009-10-12 16:39:32