A Dropwizard bundle to handle Guice integration.
<dependencies>
<dependency>
<groupId>com.hubspot.dropwizard</groupId>
<artifactId>dropwizard-guicier</artifactId>
<version>1.3.5.0</version>
</dependency>
</dependencies>
Simply install a new instance of the bundle during your service initialization
public class ExampleApplication extends Application<ExampleConfiguration> {
public static void main(String... args) throws Exception {
new ExampleApplication().run(args);
}
@Override
public void initialize(Bootstrap<ExampleConfiguration> bootstrap) {
GuiceBundle<ExampleConfiguration> guiceBundle = GuiceBundle.defaultBuilder(ExampleConfiguration.class)
.modules(new ExampleModule())
.build();
bootstrap.addBundle(guiceBundle);
}
@Override
public void run(ExampleConfiguration configuration, Environment environment) throws Exception {}
}
- Injector is created during the run phase so
Configuration
andEnvironment
are available to eager singletons (injector is also created withStage.PRODUCTION
by default) - Modules added to the
GuiceBundle
can extendDropwizardAwareModule
which gives them access to theBootstrap
,Configuration
, andEnvironment
inside of theconfigure
method. This can be used to do conditional binding, for example - Any
Managed
,Task
,HealthCheck
, orServerLifecycleListener
bound in Guice will be added to Dropwizard for you, for example (must be eager singletons for this to work)
There is an example project you can clone and play with if you'd like to get going right away.
Enjoy!