@Bean public BoneCPDataSource dataSource() { BoneCPDataSource dataSource = new BoneCPDataSource(); dataSource.setDriverClass(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER)); dataSource.setJdbcUrl(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_URL)); dataSource.setUsername(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME)); dataSource.setPassword(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD)); // https://github.com/wwadge/bonecp/blob/master/bonecp/src/main/resources/bonecp-default-config.xml dataSource.setConnectionTestStatement("SELECT 1 FROM DUAL"); dataSource.setMinConnectionsPerPartition(0); dataSource.setMaxConnectionsPerPartition(10); dataSource.setMaxConnectionAge(0, TimeUnit.SECONDS); dataSource.setConnectionTimeout(5, TimeUnit.SECONDS); dataSource.setIdleMaxAge(60, TimeUnit.MINUTES); dataSource.setAcquireIncrement(1); dataSource.setPartitionCount(1); dataSource.setIdleConnectionTestPeriod(240, TimeUnit.MINUTES); dataSource.setStatementsCacheSize(500); dataSource.setCloseConnectionWatch(false); dataSource.setAcquireRetryDelay(7000, TimeUnit.MILLISECONDS); dataSource.setAcquireRetryAttempts(5); dataSource.setQueryExecuteTimeLimit(1, TimeUnit.MILLISECONDS); dataSource.setLazyInit(false); dataSource.setLogStatementsEnabled(true); return dataSource; }
@com.google.inject.Inject(optional = true) public void setLogStatementsEnabled( @Named("bonecp.logStatementsEnabled") boolean logStatementsEnabled) { dataSource.setLogStatementsEnabled(logStatementsEnabled); }