Ho una webapp che utilizza Primavera per impostare una DataSource alla connessione in pool in questo modo:Utilizzando il DataSource primavera in un DBAppender logback
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
L'applicazione utilizza anche logback per la registrazione degli eventi direttamente al database. Logback è configurato in un file con un logback.xml DBAppender:
<appender name="eventsDB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>${jdbc.driverClassName}</driverClass>
<jdbcUrl>${jdbc.url}</jdbcUrl>
<user>${jdbc.username}</user>
<password>${jdbc.password}</password>
</dataSource>
</connectionSource>
</appender>
Come potete vedere stiamo impostare il DataSource per due volte, e che richiedono sostituzioni di proprietà separati in ogni caso. Sarebbe molto meglio semplicemente lasciare che Spring crea il dataSource e lo trasmette al logback DBAppender.
Qualcuno può suggerire il modo migliore per farlo?