2010-08-04 15 views
5

En una aplicación quiero usar mi propia implementación de javax.sql.DataSource que amplía el estándar org.apache.commons.dbcp.BasicDataSource utilizado por Grails y agrega la funcionalidad para establecer el identificador de cliente basado en el registro actual en usuario en la aplicación Grails.Configurando Grails para usar su propia implementación de DataSource o para proxy del DataSource estándar

¿Cuál es la mejor manera de cambiar la implementación subyacente javax.sql.DataSource en una aplicación Grails?

En el momento en que veo dos posibilidades:

  • cambiar la implementación del origen de datos que es utilizado por Griales
  • proxy de la fuente de datos que es utilizado por Grails y añadir la funcionalidad con AOP

¿Alguna pista sobre cómo lidiar con este requisito?

Respuesta

4

aquí es mi resources.groovy

import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH 

// Place your Spring DSL code here 
beans = { 

    /** 
    * c3P0 pooled data source that forces renewal of DB connections of certain age 
    * to prevent stale/closed DB connections and evicts excess idle connections 
    * Still using the JDBC configuration settings from DataSource.groovy 
    * to have easy environment specific setup available 
    */ 
    dataSource(com.mchange.v2.c3p0.ComboPooledDataSource) { bean -> 
     bean.destroyMethod = 'close' 
     //use grails' datasource configuration for connection user, password, driver and JDBC url 
     user = CH.config.dataSource.username 
     password = CH.config.dataSource.password 
     driverClass = CH.config.dataSource.driverClassName 
     jdbcUrl = CH.config.dataSource.url 
     //force connections to renew after 2 hours 
     maxConnectionAge = 2 * 60 * 60 
     //get rid too many of idle connections after 30 minutes 
     maxIdleTimeExcessConnections = 30 * 60 
    } 

} 

estoy usando c3p0 ComboPooledDataSource

+0

¡Gracias! Eso me parece muy prometedor. – stefanglase

+0

Hola. ¿Sigue siendo válido para Grails 2.3.6? ¡Gracias! –

Cuestiones relacionadas