Class AbstractJdbiConfigurationModule

  • All Implemented Interfaces:
    com.google.inject.Module, JdbiBinder

    public abstract class AbstractJdbiConfigurationModule
    extends com.google.inject.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).

    • Field Detail

      • annotationClass

        private final java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass
    • Constructor Detail

      • 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​(java.lang.Class<? extends java.lang.annotation.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 Detail

      • configure

        protected final void configure()
        Overrides:
        configure in class com.google.inject.AbstractModule
      • configureJdbi

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