J'utilise dans ma combinaison d'application de deux approches. le premier est le pooling de connexion c3p0, c'est presque la même solution que chkal sugested. La deuxième approche consiste à utiliser Spring lazyConnectionDataSourceProxy, qui crée un proxy de chargement paresseux qui charge la connexion uniquement si vous cliquez sur la base de données. C'est très utile, quand vous avez un cache de second niveau et que vous ne lisez que les données et requêtes en cache - la base de données ne sera pas touchée, et vous n'avez pas besoin d'acquérir de connexion (ce qui est très cher).
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- Pool properties -->
<property name="minPoolSize" value="5" />
<property name="initialPoolSize" value="10" />
<property name="maxPoolSize" value="50" />
<property name="maxStatements" value="50" />
<property name="idleConnectionTestPeriod" value="120" />
<property name="maxIdleTime" value="1200" />
</bean>
<bean name="lazyConnectionDataSourceProxy" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
<property name="targetDataSource" ref="dataSource" />
</bean>
Merci, très vite maintenant. – blow