public interface AkkaGuiceSupport
Mix this interface in with a Guice AbstractModule to get convenient support for binding actors. For example:
public class MyModule extends AbstractModule implements AkkaGuiceSupport { protected void configure() { bindActor(MyActor.class, "myActor"); } }Then to use the above actor in your application, add a qualified injected dependency, like so:
public class MyController extends Controller { @Inject @Named("myActor") ActorRef myActor; ... }
Modifier and Type | Method and Description |
---|---|
default <T extends akka.actor.Actor> |
bindActor(java.lang.Class<T> actorClass,
java.lang.String name)
Bind an actor.
|
default <T extends akka.actor.Actor> |
bindActor(java.lang.Class<T> actorClass,
java.lang.String name,
java.util.function.Function<akka.actor.Props,akka.actor.Props> props)
Bind an actor.
|
default <T extends akka.actor.Actor> |
bindActorFactory(java.lang.Class<T> actorClass,
java.lang.Class<?> factoryClass)
Bind an actor factory.
|
default <T extends akka.actor.Actor> void bindActor(java.lang.Class<T> actorClass, java.lang.String name, java.util.function.Function<akka.actor.Props,akka.actor.Props> props)
This will cause the actor to be instantiated by Guice, allowing it to be dependency injected itself. It will bind the returned ActorRef for the actor will be bound, qualified with the passed in name, so that it can be injected into other components.
T
- the actor type.actorClass
- The class that implements the actor.name
- The name of the actor.props
- A function to provide props for the actor. The props passed in will just describe
how to create the actor, this function can be used to provide additional configuration such
as router and dispatcher configuration.default <T extends akka.actor.Actor> void bindActor(java.lang.Class<T> actorClass, java.lang.String name)
This will cause the actor to be instantiated by Guice, allowing it to be dependency injected itself. It will bind the returned ActorRef for the actor will be bound, qualified with the passed in name, so that it can be injected into other components.
T
- the actor type.actorClass
- The class that implements the actor.name
- The name of the actor.default <T extends akka.actor.Actor> void bindActorFactory(java.lang.Class<T> actorClass, java.lang.Class<?> factoryClass)
This is useful for when you want to have child actors injected, and want to pass parameters into them, as well as have Guice provide some of the parameters. It is intended to be used with Guice's AssistedInject feature.
T
- the actor type.actorClass
- The class that implements the actor.factoryClass
- The factory interface for creating the actor.