public abstract class AbstractModule extends Object implements Module
Module
s which reduces repetition and results in
a more readable configuration. Simply extend this class, implement configure()
, and call the inherited methods which mirror those found in
Binder
. For example:
public class MyModule extends AbstractModule { protected void configure() { bind(Service.class).to(ServiceImpl.class).in(Singleton.class); bind(CreditCardPaymentService.class); bind(PaymentService.class).to(CreditCardPaymentService.class); bindConstant().annotatedWith(Names.named("port")).to(8080); } }
Constructor and Description |
---|
AbstractModule() |
Modifier and Type | Method and Description |
---|---|
protected void |
addError(Message message) |
protected void |
addError(String message,
Object... arguments) |
protected void |
addError(Throwable t) |
protected <T> AnnotatedBindingBuilder<T> |
bind(Class<T> clazz) |
protected <T> LinkedBindingBuilder<T> |
bind(Key<T> key) |
protected <T> AnnotatedBindingBuilder<T> |
bind(TypeLiteral<T> typeLiteral) |
protected AnnotatedConstantBindingBuilder |
bindConstant() |
protected Binder |
binder()
Gets direct access to the underlying
Binder . |
protected void |
bindInterceptor(Matcher<? super Class<?>> classMatcher,
Matcher<? super Method> methodMatcher,
MethodInterceptor... interceptors) |
protected void |
bindListener(Matcher<? super Binding<?>> bindingMatcher,
ProvisionListener... listener) |
protected void |
bindListener(Matcher<? super TypeLiteral<?>> typeMatcher,
TypeListener listener) |
protected void |
bindScope(Class<? extends Annotation> scopeAnnotation,
Scope scope) |
protected abstract void |
configure()
Configures a
Binder via the exposed methods. |
void |
configure(Binder builder)
Contributes bindings and other configurations for this module to
binder . |
protected void |
convertToTypes(Matcher<? super TypeLiteral<?>> typeMatcher,
TypeConverter converter) |
protected Stage |
currentStage() |
protected <T> MembersInjector<T> |
getMembersInjector(Class<T> type) |
protected <T> MembersInjector<T> |
getMembersInjector(TypeLiteral<T> type) |
protected <T> Provider<T> |
getProvider(Class<T> type) |
protected <T> Provider<T> |
getProvider(Key<T> key) |
protected void |
install(Module module) |
protected void |
requestInjection(Object instance) |
protected void |
requestStaticInjection(Class<?>... types) |
protected void |
requireBinding(Class<?> type)
Adds a dependency from this module to
type . |
protected void |
requireBinding(Key<?> key)
Adds a dependency from this module to
key . |
public final void configure(Binder builder)
Module
binder
.
Do not invoke this method directly to install submodules. Instead use
Binder.install(Module)
, which ensures that provider methods
are
discovered.
protected abstract void configure()
Binder
via the exposed methods.protected Binder binder()
Binder
.protected void bindScope(Class<? extends Annotation> scopeAnnotation, Scope scope)
Binder.bindScope(Class, Scope)
protected <T> LinkedBindingBuilder<T> bind(Key<T> key)
Binder.bind(Key)
protected <T> AnnotatedBindingBuilder<T> bind(TypeLiteral<T> typeLiteral)
Binder.bind(TypeLiteral)
protected <T> AnnotatedBindingBuilder<T> bind(Class<T> clazz)
Binder.bind(Class)
protected AnnotatedConstantBindingBuilder bindConstant()
Binder.bindConstant()
protected void install(Module module)
Binder.install(Module)
protected void addError(String message, Object... arguments)
Binder.addError(String, Object[])
protected void addError(Throwable t)
Binder.addError(Throwable)
protected void addError(Message message)
Binder.addError(Message)
protected void requestInjection(Object instance)
Binder.requestInjection(Object)
protected void requestStaticInjection(Class<?>... types)
Binder.requestStaticInjection(Class[])
protected void bindInterceptor(Matcher<? super Class<?>> classMatcher, Matcher<? super Method> methodMatcher, MethodInterceptor... interceptors)
protected void requireBinding(Key<?> key)
key
. When the injector is
created, Guice will report an error if key
cannot be injected.
Note that this requirement may be satisfied by implicit binding, such as
a public no-arguments constructor.protected void requireBinding(Class<?> type)
type
. When the injector is
created, Guice will report an error if type
cannot be injected.
Note that this requirement may be satisfied by implicit binding, such as
a public no-arguments constructor.protected <T> Provider<T> getProvider(Key<T> key)
Binder.getProvider(Key)
protected <T> Provider<T> getProvider(Class<T> type)
Binder.getProvider(Class)
protected void convertToTypes(Matcher<? super TypeLiteral<?>> typeMatcher, TypeConverter converter)
protected Stage currentStage()
Binder.currentStage()
protected <T> MembersInjector<T> getMembersInjector(Class<T> type)
Binder.getMembersInjector(Class)
protected <T> MembersInjector<T> getMembersInjector(TypeLiteral<T> type)
Binder.getMembersInjector(TypeLiteral)
protected void bindListener(Matcher<? super TypeLiteral<?>> typeMatcher, TypeListener listener)
protected void bindListener(Matcher<? super Binding<?>> bindingMatcher, ProvisionListener... listener)
Binder.bindListener(Matcher, ProvisionListener...)