A Dropwizard bundle to handle Guice integration.



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);

  public void initialize(Bootstrap<ExampleConfiguration> bootstrap) {
    GuiceBundle<ExampleConfiguration> guiceBundle = GuiceBundle.defaultBuilder(ExampleConfiguration.class)
        .modules(new ExampleModule())


  public void run(ExampleConfiguration configuration, Environment environment) throws Exception {}



There is an example project you can clone and play with if you'd like to get going right away.

Upgrading from dropwizard-guice

There are a couple important changes to be aware of when upgrading from dropwizard-guice.

AutoConfig has been removed

Reasoning and potential workarounds are discussed here (fwiw we've ditched AutoConfig internally and have never looked back).

Explicit Bindings Required

By default, dropwizard-guicier installs a module which makes Guice run in a more strict mode. In particular, just-in-time bindings are disabled and all objects must be explicitly bound. In addition, it requires that no-arg constructors are annotated with @Inject for Guice to use them. You can opt out of having this module installed by calling enableGuiceEnforcer(false) when constructing your GuiceBundle.