2016-06-10 9 views
0

Momentan sind in meinem Projekt die Datenquelle, der Transaktionsmanager und andere Bean, die für die Datenbankverbindung benötigt werden, in der XML-Datei definiert und die Werte werden in der Eigenschaftendatei konfiguriert, von der aus die Verbindung hergestellt wird. für die Ex:Datenbankverbindung mit c3p0

<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
    destroy-method="close" p:driverClass="${DRIVER_CLASS}" p:jdbcUrl="${DB_URL}" 
    p:minPoolSize="${MIN_DB_POOL_SIZE}" p:maxPoolSize="${DB_POOL_SIZE}" 
    p:maxStatements="${DB_POOL_SIZE}" p:idleConnectionTestPeriod="${IDLE_CONNECTION_TEST_PERIOD}" 
    p:loginTeimeout="${LOGIN_TIMEOUT}" scope="singleton"></bean> 

alle diese wie Werte $ {} DB_POOL_SIZE sind in Eigenschaftendatei konfiguriert. Die Klasse com.mchange.v2.c3p0.ComboPooledDataSource ist letzte Klasse und kann nicht erweitert werden. so meine Anforderung ist : wenn Frühling die Bohne von Datenquelle verursachen, sollte ich in Lage sein, den Wert der Variablen in xml (DB_URL) von meiner Java-Akte durch setzende Methode einzustellen. wie geht das?

+0

Bitte klären Sie Ihr spezifisches Problem oder fügen Sie weitere Details hinzu, um genau das hervorzuheben, was Sie brauchen. Wie es derzeit geschrieben wird, ist es schwer zu sagen, was genau Sie fragen. Weitere Informationen zur Klärung dieser Frage finden Sie auf der Seite "Fragen stellen". –

Antwort

0

Ich bekomme nicht ganz, was Sie versuchen zu tun, aber wenn Ihr Problem ist, dass Sie ComboPoolDataSource mit einigen benutzerdefinierten Funktionen erweitern möchten, erweitern Sie einfach AbstractComboPooledDataSource. Überprüfen Sie die Quelle zu ComboPooledDataSource. Es ist nicht viel da (sobald man den lästigen Copyright-Header hinter sich hat). Verwenden Sie das als Vorlage und erweitern Sie AbstractComboPooledDataSource, wie Sie möchten.