Ist es möglich, einen Persistenzkontext in einen Scala-Akteur zu injizieren, jedes Mal, wenn es handelt? Ich habe eine duale Java/Scala-Spring-Anwendung, und ich verwende Spring-Annotationen, um meine Java-Dienste und Methoden als transaktional zu kennzeichnen. Ich würde gerne eine ähnliche Funktionalität innerhalb meiner Scala-Akteure verwenden. Das heißt, der Akteur sollte jedes Mal, wenn er auf eine Nachricht antwortet, innerhalb einer einzigen Transaktion arbeiten. Hat jemand etwas Ähnliches ausprobiert oder gibt es Beispiele für diese Art von Dingen?
Antwort
Zu viele Anzeigen?
oxbow_lakes
Punkte
131223
Warum kapseln Sie den dauerhaften Zugriff nicht durch eine Dao
trait
die in den Akteur selbst injiziert wird. Auf diese Weise können Sie einen Persistenzakteur haben, der vom Persistenzmechanismus selbst entkoppelt ist:
class DaoActor(val dao: Dao) extends Actor {
def act() = {
loop {
react {
case SaveTrade(trade) => dao.save(trade)
case ReadTrades(date) => dao.lookup(date) }
}
}
}
Darüber hinaus ist Ihr Dao
könnte in Java kodiert werden, so dass Sie die @Transactional
Vermerk dort.