2
我正在加熱到斯卡拉,但我對阿卡仍然很陌生。這似乎是一個相當直接的問題,但我無法找到關於這種特定方法的任何信息,這告訴我可能是我的想法有問題,或者已經有一個非常標準的方法來做到這一點。在斯卡拉Akka演員中安置DAO層
我發現的所有解決方案都是圍繞着一個Akka actor調用預構建的服務層來處理數據庫邏輯。
我的問題是讓DAO本身成爲一個持續的演員是否可行。沿着此線的東西:上述
class UserDAO extends Actor {
val db = actorSystem.actorSelection("/repository/dao")
def receive = {
case GetUserById(id) => sender ! (db ? RunStoredProc(SpGetUserById(id)))
...
}
}
的純屬假設僞碼和所有的方法(即RunStoredProc
)旨在僅作爲示例。我對這種系統的設計決定背後的理智更加好奇。 UserDAO
和DAO
(db
)參與者將是持久的和無狀態的(儘管DAO
將持有數據庫連接的句柄)。我所堅持的意思是說,他們不會被實際稱爲他們的演員實例化。
我在這裏重新發明了車輪嗎?