Skip to content

Instantly share code, notes, and snippets.

@eishay
Created May 2, 2016 23:04
Show Gist options
  • Save eishay/2bb7b323ef29fa652036ade61484eb79 to your computer and use it in GitHub Desktop.
Save eishay/2bb7b323ef29fa652036ade61484eb79 to your computer and use it in GitHub Desktop.
@Singleton
class ActorInstance[T <: Actor] @Inject() (
systemProvider: Provider[ActorSystem], builder: ActorBuilder, provider: Provider[T]) {
lazy val ref: ActorRef = builder(systemProvider.get, provider)
}
@ImplementedBy(classOf[ActorBuilderImpl])
trait ActorBuilder {
def apply(system: ActorSystem, provider: Provider[_ <: Actor]): ActorRef
}
class ActorBuilderImpl extends ActorBuilder {
def apply(system: ActorSystem, provider: Provider[_ <: Actor]): ActorRef =
system.actorOf(Props { provider.get })
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment