public abstract class AbstractModule extends Object implements Module
Modules 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)
Modulebinder.
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...)