Class AbstractJdbiConfigurationModule

All Implemented Interfaces:
Module, JdbiBinder

public abstract class AbstractJdbiConfigurationModule extends AbstractModule implements JdbiBinder
Base module class for element configuration modules.

In more complex projects with multiple Jdbi definitions, there are often elements (e.g. mappers or plugins) that should be shared between all instances.

Modules that extend AbstractJdbiConfigurationModule bind Jdbi related elements such as mappers, plugins, codecs etc. which then are used by Jdbi definition modules (which extend AbstractJdbiDefinitionModule). Any binding that is defined here will be added to any Jdbi definition as long as they either use the same configuration annotation. By default (unless using the constructors that explicitly take an annotation), all Jdbi definitions have all configurations assigned.

This module does neither define a Jdbi binding nor requires a data source to be bound. Jdbi instances are defined in modules extending AbstractJdbiDefinitionModule (which are private guice modules).

  • Constructor Details

    • AbstractJdbiConfigurationModule

      public AbstractJdbiConfigurationModule()
      Creates an element configuration module.

      All elements defined in this module will be bound using the JdbiGlobal annotation. This is the used by AbstractJdbiDefinitionModule instances unless a custom annotation is used.

    • AbstractJdbiConfigurationModule

      public AbstractJdbiConfigurationModule(Class<? extends Annotation> annotationClass)
      Creates an element configuration module with a custom annotation.

      All elements defined in this module will be bound using the given custom annotation. This allows creating multiple sets of element configuration modules which can be referenced from modules extending the AbstractJdbiDefinitionModule base class if a the same custom annotation is used.

  • Method Details

    • configureJdbi

      public abstract void configureJdbi()
      Override this method to create bindings that will be used in Jdbi definition modules.
    • jdbiBinder

      public final JdbiBinder jdbiBinder()
      Provides access to the JdbiBinder instance.

      Only valid when called from configureJdbi().

      Specified by:
      jdbiBinder in interface JdbiBinder