3 Stimmen

Scala-Akteure und Persistenz-Kontext

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?

7voto

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X