public class HikariModule extends AbstractModule
This module provides a DataSource
instance that is configured based on module's constructor arguments,
configuration properties or both.
Different constructor variants allow you to configure dataSourceClassName
(note that HikariCP uses javax.sql.DataSource
instances
instead of java.sql.Driver
used by other connection pools), minimumIdle
and maximumPoolSize
as well as dataSourceProperties
.
If you wish to configure the module using configuration properties you should use the following property names: other.hikari.dataSourceClassName
,
other.hikari.minimumIdle
and other.hikari.maximumPoolSize
. All configuration properties prefixed with other.hikari.dataSourceProperties
will
be used as data source properties - e.g. other.hikari.URL
will be used to set URL
property on the data source.
Example usage: (Java DSL)
import ratpack.handling.*; import ratpack.guice.*; import ratpack.func.Action; import ratpack.launch.*; import ratpack.hikari.HikariModule; import com.google.common.collect.ImmutableMap; class ModuleBootstrap implements Action<BindingsSpec> { public void execute(BindingsSpec bindings) { Map dataSourceProperties = ImmutableMap.of("URL", "jdbc:h2:mem:dev"); bindings.add(new HikariModule(dataSourceProperties, "org.h2.jdbcx.JdbcDataSource")); } } LaunchConfig launchConfig = LaunchConfigBuilder.baseDir(new File("appRoot")) .build(new HandlerFactory() { public Handler create(LaunchConfig launchConfig) { return Guice.handler(launchConfig, new ModuleBootstrap(), new Action<Chain>() { public void execute(Chain chain) { //... } }); } });
Example usage: (Groovy DSL)
import ratpack.hikari.HikariModule import groovy.sql.Sql import ratpack.groovy.sql.SqlModule import static ratpack.groovy.Groovy.ratpack ratpack { bindings { add new SqlModule(), new HikariModule("org.h2.jdbcx.JdbcDataSource", URL: "jdbc:h2:mem:dev", user: 'user', password: 'pass') } handlers { Sql sql -> get('schemas') { def schemas = sql.rows('show schemas') render schemas*.getAt(0).join(', ') } } }
Constructor and Description |
---|
HikariModule() |
HikariModule(Map<String,String> dataSourceProperties,
String dataSourceClassName) |
HikariModule(Map<String,String> dataSourceProperties,
String dataSourceClassName,
Integer minimumIdleSize,
Integer maximumPoolSize) |
Modifier and Type | Method and Description |
---|---|
protected void |
configure() |
DataSource |
dataSource(com.zaxxer.hikari.HikariConfig config) |
com.zaxxer.hikari.HikariConfig |
hikariConfig(LaunchConfig launchConfig) |
addError, addError, addError, bind, bind, bind, bindConstant, binder, bindInterceptor, bindListener, bindScope, configure, convertToTypes, currentStage, getMembersInjector, getMembersInjector, getProvider, getProvider, install, requestInjection, requestStaticInjection, requireBinding, requireBinding
public HikariModule()
public HikariModule(Map<String,String> dataSourceProperties, String dataSourceClassName)
protected void configure()
configure
in class AbstractModule
@Provides public com.zaxxer.hikari.HikariConfig hikariConfig(LaunchConfig launchConfig)
@Provides public DataSource dataSource(com.zaxxer.hikari.HikariConfig config)