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), minimumPoolSize
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.minimumPoolSize
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<ModuleRegistry> { public void execute(ModuleRegistry modules) { Map dataSourceProperties = ImmutableMap.of("URL", "jdbc:h2:mem:dev"); modules.register(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 { modules { register new SqlModule() register 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 minimumPoolSize,
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)