¿Cómo configurar el origen de datos con Spring para HikariCP?

Hola, estoy intentando usar HikariCP con Spring para el grupo de conexiones. Estoy usando jdbcTempLate y JdbcdaoSupport.
Este es mi archivo de configuración de spring para el origen de datos:

      

Pero desafortunadamente el siguiente mensaje de error está generando:

 Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.zaxxer.hikari.HikariDataSource]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.zaxxer.hikari.HikariDataSource.() 

¿Puede alguien decirme cómo resolver este problema?

necesita escribir esta estructura en su configuración de beans (esta es su fuente de datos):

         ${dataSource.url} ${dataSource.username} ${dataSource.password}        

Este es mi ejemplo y está funcionando. Solo necesita colocar sus propiedades en hibernate.properties y configurarlas antes:

    classpath:hibernate.properties    

Obs .: las versiones son
log4j: 1.2.16
springframework: 3.1.4.RELEASE
HikariCP: 1.4.0

Archivo de propiedades (hibernate.properties):

 hibernate.dataSourceClassName=oracle.jdbc.pool.OracleDataSource hibernate.hikari.maximumPoolSize=10 hibernate.hikari.idleTimeout=30000 dataSource.url=jdbc:oracle:thin:@localhost:1521:xe dataSource.username=admin dataSource.password= 

mi prueba java config (para MySql)

 @Bean(destroyMethod = "close") public DataSource dataSource(){ HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setDriverClassName("com.mysql.jdbc.Driver"); hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/spring-test"); hikariConfig.setUsername("root"); hikariConfig.setPassword("admin"); hikariConfig.setMaximumPoolSize(5); hikariConfig.setConnectionTestQuery("SELECT 1"); hikariConfig.setPoolName("springHikariCP"); hikariConfig.addDataSourceProperty("dataSource.cachePrepStmts", "true"); hikariConfig.addDataSourceProperty("dataSource.prepStmtCacheSize", "250"); hikariConfig.addDataSourceProperty("dataSource.prepStmtCacheSqlLimit", "2048"); hikariConfig.addDataSourceProperty("dataSource.useServerPrepStmts", "true"); HikariDataSource dataSource = new HikariDataSource(hikariConfig); return dataSource; } 

Al usar la configuración XML, su fuente de datos debe verse más o menos así:

     jdbc:oracle:thin:@localhost:1521:XE username password        

O puede omitir el frijol HikariConfig completo y usar un enfoque como el que se menciona aquí

Este último error es causado por la biblioteca SLF4J no se encuentra. HikariCP tiene dos dependencias: slf4j y javassist. Por cierto, HikariDataSource tiene un constructor predeterminado y no necesita HikariConfig, mira este enlace . Entonces ese nunca fue el problema.

Recientemente C3P0 de C3P0 a HikariCP en un proyecto basado en Spring e Hibernate y no fue tan fácil como había imaginado y aquí estoy compartiendo mis hallazgos.

Para Spring Boot ver mi respuesta aquí

Tengo la siguiente configuración

  • Spring 4.3.8+
  • Hiberante 4.3.8+
  • Gradle 2.x
  • PostgreSQL 9.5

Algunas de las siguientes configuraciones son similares a algunas de las respuestas anteriores, pero hay diferencias.

Gradle cosas

Para poder tirar los flasks correctos, necesitaba tirar los siguientes flasks

 //latest driver because *brettw* see https://github.com/pgjdbc/pgjdbc/pull/849 compile 'org.postgresql:postgresql:42.2.0' compile('com.zaxxer:HikariCP:2.7.6') { //they are pulled in separately elsewhere exclude group: 'org.hibernate', module: 'hibernate-core' } // Recommended to use HikariCPConnectionProvider by Hibernate in 4.3.6+ compile('org.hibernate:hibernate-hikaricp:4.3.8.Final') { //they are pulled in separately elsewhere, to avoid version conflicts exclude group: 'org.hibernate', module: 'hibernate-core' exclude group: 'com.zaxxer', module: 'HikariCP' } // Needed for HikariCP logging if you use log4j compile('org.slf4j:slf4j-simple:1.7.25') compile('org.slf4j:slf4j-log4j12:1.7.25') { //log4j pulled in separately, exclude to avoid version conflict exclude group: 'log4j', module: 'log4j' } 

Configuraciones basadas en Spring / Hibernate

Para que Spring & Hibernate haga uso del conjunto de conexiones de Hikari, debe definir HikariDataSource y alimentarlo a sessionFactory Bean como se muestra a continuación.

             localhost 5432 dbname dbuser dbpassword          org.hibernate.hikaricp.internal.HikariCPConnectionProvider     

Una vez que lo anterior está configurado, debe agregar una entrada a su log4j or logback y establecer el level en DEBUG para ver el inicio del grupo de conexiones Hikari .

Log4j1.2

      

Volver a iniciar sesión

A través de application.properties en Spring Boot

 debug=true logging.level.com.zaxxer.hikari.HikariConfig=DEBUG 

Usando logback.xml

    

Con lo anterior, ¡deberías estar listo para empezar! Obviamente, necesita personalizar las HikariCP grupo HikariCP para obtener el rendimiento que promete.

Puede crear un bean de fuente de datos en el contexto de servlet como:

         jdbc:mysql://localhost:3306/exampledb root  250 2048 true true    

Lo encontré en http://www.baeldung.com/hikaricp y funciona.

Tu pom.xml

  com.zaxxer HikariCP 2.6.3  

Su data.xml

           

Su jdbc.properties

 jdbc.driverClassName=org.postgresql.Driver jdbc.dialect=org.hibernate.dialect.PostgreSQL94Dialect jdbc.databaseurl=jdbc:postgresql://localhost:5432/dev_db jdbc.username=dev jdbc.password=dev 

para DB2, intente la configuración siguiente.

       4 192.168.xxx.xxx dbname 50000 db2inst1 password          
    Intereting Posts